Medical imaging and efficient sharing of medical imaging information

ABSTRACT

An MRI image processing and analysis system may identify instances of structure in MRI flow data, e.g., coherency, derive contours and/or clinical markers based on the identified structures. The system may be remotely located from one or more MRI acquisition systems, and perform: perform error detection and/or correction on MRI data sets (e.g., phase error correction, phase aliasing, signal unwrapping, and/or on other artifacts); segmentation; visualization of flow (e.g., velocity, arterial versus venous flow, shunts) superimposed on anatomical structure, quantification; verification; and/or generation of patient specific 4-D flow protocols. An asynchronous command and imaging pipeline allows remote image processing and analysis in a timely and secure manner even with complicated or large medical imaging data sets and metadata.

BACKGROUND Technical Field

The present disclosure generally relates to magnetic resonance imaging(MRI), for instance four-dimensional (4D) flow MRI, and the sharing ofmedical imaging and other information over communications networks orchannels.

Description of the Related Art

MRI is most commonly employed in medical imaging, although can be usedin other fields. MRI machines include a main magnet which is typicallyan annular array of coils having a central or longitudinal bore. Themain magnet is capable of producing a strong stable magnetic field(e.g., 0.5 Tesla to 3.0 Tesla). The bore is sized to receive at least aportion of an object to be imaged, for instance a human body. When usedin medical imaging applications, the MRI machine may include a patienttable which allows a prone patient to be easily slid or rolled into andout of the bore.

MRI machines also include gradient magnets. The gradient magnets producea variable magnetic field that is relatively smaller than that producedby the main magnet (e.g., 180 Gauss to 270 Gauss), allowing selectedportions of an object (e.g., patient) to be imaged. MRI machines alsoinclude radio frequency (RF) coils which are operated to applyradiofrequency energy to selected portions of the object (e.g., patient)to be imaged. Different RF coils may be used for imaging differentstructures (e.g., anatomic structures). For example, one set of RF coilsmay be appropriate for imaging a neck of a patient, while another set ofRF coils may be appropriate for imaging a chest or heart of the patient.MRI machines commonly include additional magnets, for example resistivemagnets and/or permanent magnets.

The MRI machine typically includes, or is communicatively coupled to acomputer system used to control the magnets and/or coils and/or toperform image processing to produce images of the portions of the objectbeing imaged. Conventionally, MRI machines produce magnitude data setswhich represent physical structures, for instance anatomical structures.The data sets are often conform to the Digital Imaging andCommunications in Medicine (DICOM) standard. DICOM files typicallyinclude pixel data and metadata in a prescribed format.

BRIEF SUMMARY

Various approaches that improve 4D flow imaging are described herein.

A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically correct phase aliasing maybe summarized as including receiving, by at least one processor, a setof MRI data representative of an anatomical structure, the set of MRIdata including respective anatomical structure and velocity for each ofa plurality of voxels; for each of at least some of the plurality ofvoxels, identifying, by the at least one processor, sharp gradients inflow velocity near a velocity encoding parameter; connecting, by the atleast one processor, all of the voxels identified as having a sharpgradient to define an enclosed boundary; determining, by the at leastone processor, whether all of the voxels in the enclosed boundary arealiased; and responsive to determining that all of the voxels in theenclosed boundary are aliased: adding, by the at least one processor, amultiple of the velocity encoding parameter to the velocity for each ofthe voxels in the enclosed boundary; or subtracting, by the at least oneprocessor, a multiple of the velocity encoding parameter to the velocityfor each of the voxels in the enclosed boundary.

The method may further include responsive to determining that not all ofthe voxels in the enclosed boundary are aliased, analyzing, by the atleast one processor, the respective velocities of neighboring voxels inthe enclosed boundary; and modifying, by the at least one processor, thevelocity of each of the voxels in the enclosed boundary based at leastin part on the analyzed respective velocities of the neighboring voxels.Modifying the velocity of each of the voxels in the enclosed boundarymay include modifying the velocity of each of the voxels by an amountdetermined to minimize the discontinuity across the neighboring voxels.Determining whether all of the voxels in the enclosed boundary arealiased may include determining whether there are any sharp gradientsbetween neighboring voxels in the enclosed boundary.

A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system may be summarized as including receiving,by at least one processor, a set of MRI data representative of ananatomical structure, the set of MRI data including respectiveanatomical structure and velocity information for each of a plurality ofvoxels; defining, by the at least one processor, a volume within theanatomical structure; minimizing, by the at least one processor, adivergence of a velocity field for at least some of the plurality ofvoxels that represent the volume within the anatomical structure; andcorrecting, by the at least one processor, velocity information for theat least some of the plurality of voxels which represent the volumewithin the anatomical structure based at least in part on the minimizeddivergence of the velocity field. Correcting velocity information forthe at least some of the plurality of voxels may include correcting xvelocity, y velocity and z velocity for the at least some of theplurality of voxels. Minimizing a divergence of a velocity field mayinclude constructing a least squares divergence free approximation ofthe velocity field with a constraint of minimizing the divergence.Minimizing a divergence of a velocity field may include iterativelyminimizing a residual divergence of the velocity field.

A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically correct phase aliasing maybe summarized as including receiving, by at least one processor, a setof MRI data representative of an anatomical structure, the set of MRIdata including respective anatomical structure and velocity informationfor each of a plurality of voxels; analyzing, by the at least oneprocessor, the set of MRI data to identify a time point whichcorresponds to a peak diastole of a cardiac cycle; analyzing, by the atleast one processor, a variation of the velocity of at least some of theplurality of voxels over at least a portion of the cardiac cycle; andcorrecting, by the at least one processor, errors in the velocity of theat least some of the plurality of voxels based at least in part on theanalysis of the variation of the velocity of at least some of theplurality of voxels over at least a portion of a cardiac cycle.

Analyzing a variation of the velocity of at least some of the pluralityof voxels and correcting errors in the velocity of at least some of theplurality of voxels may include, for each of the at least some of theplurality of voxels, tracking, by the at least one processor, a changein velocity between successive time points in the cardiac cycle;determining, by the at least one processor, that aliasing has occurredif the velocity varies by more than a magnitude of a velocity encodingparameter; responsive to determining that aliasing has occurred,incrementing, by the at least one processor, a wrap count if thevelocity was reduced by more than the velocity encoding parameter; ordecrementing, by the at least one processor, a wrap count if thevelocity was increased by more than the velocity encoding parameter; andfor each point in time, modifying, by the at least one processor, thevelocity based at least in part on the accumulated wrap count for thevoxel. Modifying the velocity based at least in part on the accumulatedwrap count for the voxel may include increasing the velocity by anamount equal to product of the accumulated wrap count and two times thevelocity encoding parameter.

The method may further include determining, by the at least oneprocessor, whether the accumulated wrap count is zero over a cardiaccycle; and responsive to determining that the accumulated wrap count isnot zero over a cardiac cycle, generating, by the at least oneprocessor, an error signal.

The method may further include tracking, by the at least one processor,the number of voxels for which the accumulated wrap count is not zeroover a cardiac cycle.

The method may further include correcting, by the at least oneprocessor, errors in the velocity only for voxels for which theaccumulated wrap count is not zero over a cardiac cycle.

The method may further include identifying, by the at least oneprocessor, which of the plurality of voxels are likely to representblood flow; and selecting, by the at least one processor, the at leastsome of the plurality of voxels for analysis based at least in part onthe identification of which of the plurality of voxels are likely torepresent blood flow.

A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically correct artifacts due toeddy currents may be summarized as including receiving, by at least oneprocessor, a set of MRI data representative of an anatomical structure,the set of MRI data including respective anatomical structure andvelocity information for each of a plurality of voxels; receiving, bythe at least one processor, an indication of which of the plurality ofvoxels represent static tissue; determining, by the at least oneprocessor, at least one eddy current correction parameter based at leastin part on the velocity information for the voxels which representstatic tissue; and modifying, by the at least one processor, thevelocity information for the plurality of voxels based at least in partthe determined at least one eddy current correction parameter.

Receiving an indication of which of the plurality of voxels representstatic tissue may include filtering, by the at least one processor, theMRI data to mask regions of air; filtering, by the at least oneprocessor, the MRI data to mask regions of blood flow; and filtering, bythe at least one processor, the MRI data to mask regions of non-statictissue. Filtering the MRI data to mask regions of air may includemasking regions with anatomy image values that are below a determinedthreshold.

The method may further include analyzing, by the at least one processor,a histogram for anatomy image values to determine the determinedthreshold.

The method may further include receiving, by the at least one processor,at least one filter parameter via a user interface communicativelycoupled to the at least one processor.

A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically set an orientation of amultiplanar reconstruction may be summarized as including receiving, byat least one processor, a set of MRI data representative of ananatomical structure, the set of MRI data including respectiveanatomical structure and velocity information for each of a plurality ofvoxels; presenting, by a display communicatively coupled to the at leastone processor, the MRI data; receiving, by the at least one processor,selection of a central region of blood flow; determining, by the atleast one processor, the direction of blood flow in the central regionof blood flow; and responsive to determining the direction of bloodflow, adjusting, by the at least one processor, the orientation of themultiplanar reconstruction so that the multiplanar reconstruction is ona plane that is perpendicular to the determine direction of blood flow.Determining the direction of blood flow in the central region of bloodflow may include determining a time point which corresponds to peakblood flow; and determining the direction of blood flow at the timepoint which corresponds to peak blood flow.

A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically quantify blood flow in ananatomical volume may be summarized as including receiving, by at leastone processor, a set of MRI data representative of an anatomicalstructure, the set of MRI data including respective anatomical structureand velocity information for each of a plurality of voxels; identifying,by the at least one processor, an anatomical volume in the set of MRIdata which may include a blood pool; identifying, by the at least oneprocessor, a plane on a landmark that is at least approximatelyperpendicular to the flow of blood in the anatomical volume; generating,by the at least one processor, a contour defined by the intersection ofthe plane and the anatomical volume; and determining, by the at leastone processor, the total flow of blood through the voxels in thegenerated contour. Determining the total flow of blood through thevoxels in the generated contour may include, for each voxel in thegenerated contour, determining, by the at least one processor, a dotproduct of a normal vector of the plane and a velocity vector of thevoxel; and summing, by the at least one processor, the determined dotproducts of each of the voxels in the generated contour.

The velocity information may include a plurality of velocity components,and determining the total flow of blood through the voxels in thegenerated contour may include for each velocity component, producing avelocity multiplanar reconstruction (MPR) in the plane of the generatedcontour, each of the velocity MPRs including a plurality of MPR pixelshaving pixel spacing at least similar to dimension of each of thevoxels; for each MPR pixel inside the generated contour, determining, bythe at least one processor, a dot product of a normal vector of theplane and a velocity vector composed of the pixel values from thegenerated velocity MPRs; and summing, by the at least one processor, thedetermined dot products of each of the MPR pixels in the generatedcontour.

A method of operation for use with a medical imaging system toautomatically determine a volume of a particular region may besummarized as including receiving, by at least one processor, a set ofimage data representative of an anatomical structure, the set of imagedata comprising respective anatomical structure information for each ofa plurality of voxels; receiving, by the at least one processor, anindication of a primary axis of a volume of interest; generating, by theat least one processor, a plurality of spaced-apart slice planes alongthe primary axis of the volume of interest; for each of the plurality ofslice planes, generating, by the at least one processor, a closedcontour which defines a boundary of the volume of interest at the sliceplane; generating, by the at least one processor, a three dimensionalsurface which connects the contours of all of the slice planes; anddetermining, by the at least one processor, the volume of the threedimensional surface. The set of image data may include respectiveanatomical structure information for each of a plurality of voxels at aplurality of time points, and the method may include, for each of theplurality of time points, generating, by the at least one processor, aplurality of spaced-apart slice planes along the primary axis of thevolume of interest; for each of the plurality of slice planes,generating, by the at least one processor, a closed contour whichdefines a boundary of the volume of interest at the slice plane;generating, by the at least one processor, a three dimensional surfacewhich connects the contours of all of the slice planes; and determining,by the at least one processor, the volume of the three dimensionalsurface. Receiving an indication of a primary axis may include receivingan indication of a primary axis that comprises one of a straight axis ora curved axis. The set of image data may include respective anatomicalstructure information for each of a plurality of voxels at a pluralityof time points, and the primary axis may include a primary axis thatmoves over at least some of the plurality of time points. Receiving anindication of a primary axis may include receiving an indication ofmultiple axes.

A method of operation for use with a medical imaging system toautomatically generate a connected mask may be summarized as includingreceiving, by at least one processor, a set of image data representativeof an anatomical structure, the set of image data comprising respectiveanatomical structure information for each of a plurality of locations inspace; identifying, by the at least one processor, a seed location;identifying, by the at least one processor, an intensity value for theseed location; and traversing, by the at least one processor, outwardfrom the seed location to other locations to flood fill the connectedmask according to flood fill criteria, the flood fill criteria includingat least whether the intensity value of the each of the locations iswithin a specified threshold of the intensity value for the seedlocation.

The received set of image data may include three dimensional image data,and the method may further include generating, by the at least oneprocessor, a two dimensional multiplanar reconstruction from thereceived image data. Moving outward from the seed location to otherlocations to flood fill the mask may include moving outward from theseed location to other locations to flood fill the mask according toflood fill criteria which may include connectivity criteria. Movingoutward from the seed location to other locations to flood fill the maskmay include moving outward from the seed location to other locations toflood fill the mask according to flood fill criteria, the flood fillcriteria including at least one of a radius constraint or a number offlood fill steps constraint.

The method may further include generating, by the at least oneprocessor, a contour defined by a border of the connected mask; andgenerating, by the at least one processor, an approximation contourwhich is an approximation of the generated contour based at least inpart on the generated contour. Generating an approximation contour mayinclude generating an approximation contour using a spline which placescontrol points at areas of high curvature.

The method may further include dilating, by the at least one processor,the approximation contour by a determined dilation factor to generated adilated approximation contour.

A method of operation for use with a medical imaging system may besummarized as including receiving, by at least one processor, a set ofimage data representative of an anatomical structure, the set of imagedata comprising respective anatomical structure information for each ofa plurality of locations in three dimensional space; tracking, by the atleast one processor, the position and orientation of the anatomicalstructure at a plurality of time points; at each of the plurality oftime points, generating, by the at least one processor, a contour forthe anatomical structure; and determining, by the at least oneprocessor, a measurement associated with the anatomical structure usingthe generated contours. Determining a measurement associated with theanatomical structure using the generated contours may include accountingfor movement of the anatomical structure over at least some of theplurality of time points. Accounting for movement of the anatomicalstructure may include accounting for the linear and angular velocity ofthe anatomical structure over the at least some of the plurality of timepoints. Determining a measurement associated with the anatomicalstructure using the generated contours may include determining flowthrough the anatomical structure.

The method may further include presenting, by the at least oneprocessor, a multiplanar reconstruction of the anatomical structure on adisplay at a plurality of time points, wherein the position andorientation of the multiplanar reconstruction tracks the generatedcontours over the plurality of time points.

The method may further include presenting, by the at least oneprocessor, a multiplanar reconstruction of the anatomical structure on adisplay; and presenting, by the at least one processor, the generatedcontours as semi-transparent if the multiplanar reconstruction is out ofplane with the generated contours.

A processor-based device may have at least one processor and at leastone nontransitory processor-readable medium communicatively coupled tothe at least one processor, and operable to perform any of the abovemethods.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

In the drawings, identical reference numbers identify similar elementsor acts. The sizes and relative positions of elements in the drawingsare not necessarily drawn to scale. For example, the shapes of variouselements and angles are not necessarily drawn to scale, and some ofthese elements may be arbitrarily enlarged and positioned to improvedrawing legibility. Further, the particular shapes of the elements asdrawn, are not necessarily intended to convey any information regardingthe actual shape of the particular elements, and may have been solelyselected for ease of recognition in the drawings.

FIG. 1 is a schematic view of a networked environment including at leastone MRI acquisition system and at least one image processing system, theMRI acquisition system located in a clinical setting and the imageprocessing system located remotely from the MRI acquisition system andcommunicatively coupled therewith over one or more networks, accordingto one illustrated embodiment.

FIG. 2 is a functional block diagram of an MRI acquisition system and anMRI image processing and analysis system that provides MRI imageprocessing and analysis services, according to one illustratedembodiment.

FIGS. 3A-3B is a flow diagram of an example push process executable byat least one processor, according to one illustrated embodiment.

FIGS. 4A-4B is a flow diagram of an example process of monitoring forartifacts and arching executable by at least one processor, according toone illustrated embodiment.

FIG. 5 is a schematic illustration of a PHI service pipeline, accordingto one illustrated embodiment.

DETAILED DESCRIPTION

In the following description, certain specific details are set forth inorder to provide a thorough understanding of various disclosedembodiments. However, one skilled in the relevant art will recognizethat embodiments may be practiced without one or more of these specificdetails, or with other methods, components, materials, etc. In otherinstances, well-known structures associated with MRI machines, computersystems, server computers, and/or communications networks have not beenshown or described in detail to avoid unnecessarily obscuringdescriptions of the embodiments.

Unless the context requires otherwise, throughout the specification andclaims which follow, the word “comprise” and variations thereof, suchas, “comprises” and “comprising” are synonymous with “including,” andare s inclusive or open-ended (i.e., does not exclude additional,unrecited elements or method acts).

Reference throughout this specification to “one embodiment” or “anembodiment” means that a particular feature, structure or characteristicdescribed in connection with the embodiment is included in at least oneembodiment. Thus, the appearances of the phrases “in one embodiment” or“in an embodiment” in various places throughout this specification arenot necessarily all referring to the same embodiment. Furthermore, theparticular features, structures, or characteristics may be combined inany suitable manner in one or more embodiments.

As used in this specification and the appended claims, the singularforms “a,” “an,” and “the” include plural referents unless the contentclearly dictates otherwise. It should also be noted that the term “or”is generally employed in its sense including “and/or” unless the contentclearly dictates otherwise.

The headings and Abstract of the Disclosure provided herein are forconvenience only and do not interpret the scope or meaning of theembodiments.

Many of the implementations described herein take advantage of a 4-Dflow MRI data set, which essentially captures MRI magnitude and phaseinformation for a three dimensional volume over a period of time. Thisapproach may allow capture or acquisition of MRI data sets withoutrequiring breath holding or synchronization or gating to a patient'scardiac or pulmonary cycles. Instead, MRI data sets are captured oracquired, and imaging processing and analysis employed to derive thedesired information, for example by re-binning acquired informationbased on the cardiac and pulmonary cycles. This essentially pushes whatis normally time-intensive acquisition operations to the imagingprocessing and analysis stage. As way of a simplified analogy, in somerespects such may be thought of as capturing a movie of the anatomicalstructure (e.g., chest, heart) without concern over a patient'spulmonary or cardiac cycles, the processing the captured movie toaccount for relative movement introduced by the pulmonary and cardiaccycles. The captured information includes both magnitude information,which is indicative of anatomical structure, and phase information whichis indicative of velocity. The phase information allows distinctionbetween static and non-static tissue, for example allowing non-statictissue (e.g., blood, air) to be distinguished from static tissue (e.g.,fat, bone). The phase information also allows certain non-static tissue(e.g., air) to be distinguished from other non-static tissue (e.g.,blood). This may advantageously allow automated or even autonomoussegmentation between tissues, and/or distinguishing atrial blood flowfrom venous blood flow. This may advantageously allow automated or evenautonomous generation of flow visualization information, which may besuperimposed on anatomical information. This may also advantageouslyallow automated or even autonomous flow quantification, identifyingabnormalities and/or verifying results.

The workflow may general divided into three portions, sequentially: 1)image acquisition, 2) image reconstruction, and 3) image processing orpost-processing and analysis. Alternatively, the workflow may be dividedinto 1) operational, 2) preprocessing, and 3) visualization andquantification.

Image acquisition may include determining, defining, generating orotherwise setting one or more pulse sequences, which are used to run theMRI machine (e.g., control magnets) and acquire raw MRI. Use of a 4Dflow pulse sequence allows capture of not only anatomical structure,which is represented by magnitude, but of velocity, which is representedby phase. At least one of the methods or techniques described herein,generation of patient specific 4D pulse sequences, occurs during or aspart of image acquisition portion. Image reconstruction may, forexample, employ fast Fourier transformations, and result in MRI datasets, often in a form compatible with the DICOM standard. Imagereconstruction has traditional been computationally intensive oftenrelying on supercomputers. The requirement for such is a significantburden to many clinical facilities. Many of the methods and techniquesdescribed herein occur during or as part of the imaging processor orpost-processing and analysis. Such can include error detection and/orerror correction, segmentation, visualization including fusion of flowrelated information and images of anatomical structures, quantification,identification of abnormalities including shunts, verification includingidentification of spurious data. Alternatively, error detection and/orerror correction may occur during the preprocessing portion.

FIG. 1 shows a networked environment 100 according to one illustratedembodiment, in which one or more MRI acquisition system (one shown) 102are communicatively coupled to at least one image processing andanalysis system 104 via one or more networks 106 a, 106 b (two shown,collectively 106).

The MRI acquisition system 102 is typically located at a clinicalfacility, for instance a hospital or dedicated medical imaging center.Various techniques and structures, as explained herein, mayadvantageously allow the image processing and analysis system 104 to beremotely located from the MRI acquisition system 102. The imageprocessing and analysis system 104 may, for example, be located inanother building, city, state, province or even country.

The MRI acquisition system 102 may, for example, include an MRI machine108, a computer system 110 and an MRI operator's system 112. The MRImachine 108 may include a main magnet 114, which is typically an annulararray of coils having a central or longitudinal bore 116. The mainmagnet 108 is capable of producing a strong stable magnetic field (e.g.,0.5 Tesla to 3.0 Tesla). The bore 116 is sized to receive at least aportion of an object to be imaged, for instance a human body 118. Whenused in medical imaging applications, the MRI machine 108 typicallyincludes a patient table 120 which allows a prone patient 118 to beeasily slid or rolled into and out of the bore 116.

The MRI machine also includes a set of gradient magnets 122 (only onecalled out). The gradient magnets 122 produce a variable magnetic fieldthat is relatively smaller than that produced by the main magnet 114(e.g., 180 Gauss to 270 Gauss), allowing selected portions of an object(e.g., patient) to be imaged. MRI machine 108 also include radiofrequency (RF) coils 124 (only one called out) which are operated toapply radiofrequency energy to selected portions of the object (e.g.,patient 118) to be imaged. Different RF coils 124 may be used forimaging different structures (e.g., anatomic structures). For example,one set of RF coils 124 may be appropriate for imaging a neck of apatient, while another set of RF coils 124 may be appropriate forimaging a chest or heart of the patient. MRI machines 108 commonlyinclude additional magnets, for example resistive magnets and/orpermanent magnets.

The MRI machine 108 typically includes, or is communicatively coupledto, a processor-based MRI control system 126 used to control the magnetsand/or coils 114, 122, 124. The processor-based control system 126 mayinclude one or more processors, non-transitory computer- orprocessor-readable memory, drive circuitry and/or interface componentsto interface with the MRI machine 108. The processor-based controlsystem 126 may, in some implementations, also perform some preprocessingon data resulting from the MRI operation.

An MRI operator's system 128 may include a computer system 130, monitoror display 132, keypad and/or keyboard 134, and/or a cursor controldevice such as a mouse 136, joystick, trackpad, trackball or the like.The MRI operator's system 128 may include or read computer- or processorexecutable instructions from one or more non-transitory computer- orprocessor-readable medium, for instance spinning media 138 such as amagnetic or optical disk. The operator's system 128 may allow atechnician to operate the MRI machine 108 to capture MRI data from apatient 118. Various techniques, structures and features describedherein may allow MRI machine 108 operation by a technician withoutrequiring the presence of a clinician or physician. Such mayadvantageously significantly lower costs of MRI procedures. Also asdescribed herein, various techniques, structures and features may allowMRI procedures to be performed much more quickly than using conventionaltechniques. Such may advantageously allow higher throughput for each MRIinstallation, amortizing cost of the capital intensive equipment over amuch larger number of procedures. For example, high computational powercomputers may be located remotely from the clinical setting, and may beused to server multiple clinical facilities. The various techniques,structures and features described herein may also additionally oralternatively advantageously reduce the time that each patient isexposed to the MRI procedure, reducing or alleviating the anxiety thatoften accompanies undergoing an MRI procedure. For instance, eliminatingthe need for breath holding and/or synchronizing with a patient'spulmonary and/or cardiac cycles via image processing and analysistechniques described herein may significantly reduce the time foracquisition, for example to eight to ten minutes.

The image processing and analysis system 104 may include one or moreservers 139 to handle incoming requests and responses, and one or morerendering or image processing and analysis computers 140. The server(s)139 may, for example take the form of one or more server computers,workstation computers, supercomputers, or personal computers, executingserver software or instructions. The one or more rendering or imageprocessing and analysis computers 140 may take the form of one or morecomputers, workstation computers, supercomputers, or personal computers,executing image processing and/or analysis software or instructions. Theone or more rendering or image processing and analysis computers 140will typically employ one, and preferably multiple, graphical processingunits (GPUs) or GPU cores.

The image processing and analysis system 104 may include one or morenon-transitory computer-readable medium 142 (e.g., magnetic or opticalhard drives, RAID, RAM, Flash) that stores processor-executableinstructions and/or data or other information. The image processing andanalysis system 104 may include one or more may include one or moreimage processing and analysis operator's systems 144. The imageprocessing and analysis operator's system 144 may include a computersystem 146, monitor or display 148, keypad and/or keyboard 150, and/or acursor control device such as a mouse 152, joystick, trackpad, trackballor the like. The image processing and analysis operator's system 144 maybe communicatively coupled to the rendering or image processing andanalysis computer(s) 140 via one or more networks, for instance a LAN154. While many image processing techniques and analysis may be fullyautomated, the image processing and analysis operator's system may allowa technician to perform certain image processing and/or analysisoperations on MRI data captured from a patient.

While illustrated as a single nontransitory computer- orprocessor-readable storage medium 142, in many implementations thenontransitory computer- or processor-readable storage medium 142 mayconstitute a plurality of nontransitory storage media. The plurality ofnontransitory storage media may be commonly located at a commonlocation, or distributed at a variety of remote locations. Thus, adatabase of raw MRI data, preprocessed MRI data and/or processed MRIdata may be implemented in one, or across more than one, nontransitorycomputer- or processor-readable storage media. Such database(s) may bestored separately from one another on separate computer- orprocessor-readable storage medium 142 or may be stored on the samecomputer- or processor-readable storage medium 142 as one another. Thecomputer- or processor-readable storage medium 142 may be co-locatedwith the image processing and analysis system 104, for example, in thesame room, building or facility. Alternatively, the computer- orprocessor-readable storage medium 142 may be located remotely from theimage processing and analysis system 104, for example, in a differentfacility, city, state or country. Electronic or digital information,files or records or other collections of information may be stored atspecific locations in non-transitory computer- or processor-readablemedia 142, thus are logically addressable portions of such media, whichmay or may not be contiguous.

As noted above, the image processing and analysis system 104 may beremotely located from the MRI acquisition system 102. The MRIacquisition system 102 and the image processing and analysis system 104are capable of communications, for example via one or morecommunications channels, for example local area networks (LANs) 106 aand Wide Area Networks (WANs) 106 b. The networks 106 may, for instanceinclude packet switched communications networks, such as the Internet,Worldwide Web portion of the Internet, extranets, and/or intranets. Thenetworks 106 may take the form of various other types oftelecommunications networks, such as cellular phone and data networks,and plain old telephone system (POTS) networks. The type ofcommunications infrastructure should not be considered limiting.

As illustrated in FIG. 1, the MRI acquisition system 102 iscommunicatively coupled to the first LAN 106 a. The first LAN 106 a maybe a network operated by or for the clinical facility, providing localarea communications for the clinical facility. The first LAN 106 a iscommunicatively coupled to the WAN (e.g., Internet) 106 b. A firstfirewall 156 a may provide security for the first LAN.

Also as illustrated in FIG. 1, the image processing and analysis system104 is communicatively coupled to the second LAN 154. The second LAN 154may be a network operated by or for an image processing facility orentity, providing local area communications for the image processingfacility or entity. The second LAN 154 is communicatively coupled to theWAN 106 b (e.g., Internet). A second firewall 156 b may provide securityfor the second LAN 154.

The image processing facility or entity may be independent from theclinical facility, for example an independent business providingservices to one, two or many clinical facilities.

While not illustrated, the communications network may include one ormore additional networking devices. The networking devices may take anyof a large variety of forms, including servers, routers, networkswitches, bridges, and/or modems (e.g., DSL modem, cable modem), etc.

While FIG. 1 illustrates a representative networked environment 100,typical networked environments may include many additional MRIacquisition systems, image processing and analysis system 104, computersystems, and/or entities. The concepts taught herein may be employed ina similar fashion with more populated networked environments than thatillustrated. For example, a single entity may provide image processingand analysis services to multiple diagnostic entities. One or more ofthe diagnostic entities may operate two or more MRI acquisition systems102. For example, a large hospital or dedicated medical imaging centermay operate two, three or even more MRI acquisition systems at a singlefacility. Typically, the entity that provides the image processing andanalysis services will operate multiple entity may provide imageprocessing and analysis systems 104 which may include two, three or evenhundreds of rendering or image processing and analysis computers 140.

FIG. 2 shows a networked environment 200 comprising one or more imageprocessing and analysis systems 104 (only one illustrated) and one ormore associated nontransitory computer- or processor-readable storagemedium 204 (only one illustrated). The associated nontransitorycomputer- or processor-readable storage medium 204 is communicativelycoupled to the image processing and analysis system(s) 104 via one ormore communications channels, for example, one or more parallel cables,serial cables, or wireless channels capable of high speedcommunications, for instance, via FireWire®, Universal Serial Bus® (USB)2 or 3, and/or Thunderbolt®, Gigabyte Ethernet®.

The networked environment 200 also comprises one or more end MRIacquisition systems 102 (only one illustrated). The MRI acquisitionsystem(s) 102 are communicatively coupled to the image processing andanalysis system(s) 104 by one or more communications channels, forexample, one or more wide area networks (WANs) 210, for instance theInternet or Worldwide Web portion thereof.

In operation, the MRI acquisition systems 102 typically function as aclient to the image processing and analysis system 104. In operation,the image processing and analysis systems 104 typically functions as aserver to receive requests or information (e.g., MRI data sets) from theMRI acquisition systems 102. Described herein is an overall processwhich employs an asynchronous command and imaging pipeline that allowsthe image processing and analysis to be performed remotely (e.g., over aWAN) from the MRI acquisition system 102. This approach provides for anumber of distinctive advantages, for instance allowing the MRIacquisition system(s) 102 to be operated by a technician withoutrequiring the presence of a clinician (e.g., physician). Varioustechniques or approaches are also described to enhance security, whileallowing access to medical imaging data as well as private patientspecific health information.

While illustrated as located remotely from the MRI acquisition system(s)102, in some implementations the image processing and analysis systems104 may be co-located with the MRI acquisition system 102. In otherimplementations, one or more of the operations or functions describedherein may be performed by the MRI acquisition system 102 or via aprocessor-based device co-located with the MRI acquisition system 102.

The image processing and analysis systems 104 receive MRI data sets,perform image processing on the MRI data sets, and provide the processedMRI data sets, for example to a clinician for review. The imageprocessing and analysis systems 104 may, for example, perform errordetection and/or correction on MRI data sets, for example phase errorcorrection, phase aliasing detection, signal unwrapping, and/ordetection and/or correction of various artifacts. Phase error is relatedto phase, as is phase aliasing. Signal unwrapping is related tomagnitude. Various other artifacts may be related to phase and/ormagnitude.

The image processing and analysis systems 104 may, for example, performsegmentation, distinguishing between various tissue type. The imageprocessing and analysis systems 104 may, for example, performquantification, for instance comparing blood flow into and out of aclosed anatomical structure or through two or more anatomicalstructures. The image processing and analysis systems 104 mayadvantageously use quantification to verify results, for exampleconfirming identification of a certain tissue and/or providing anindication of an amount of certainty in the results. Additionally, theimage processing and analysis systems 104 may advantageously usequantification to identify the existence of a shunt.

In some implementations, the image processing and analysis systems 104may generate images which reflect blood flow, for example includingdistinguishing between arterial and venous blood flow. For instance, theimage processing and analysis systems 104 may employ a first color map(e.g., blue) to indicate arterial blood flow and a second color map(e.g., red) to indicate venous blood flow. The image processing andanalysis systems 104 may indicate aberrations (e.g., shunt) using someother, distinctive color or visual emphasis. Numerous differenttechniques are described for distinguishing between different tissues aswells as between arterial and venous blood flow. Flow visualization maybe superimposed, for instance as one or more layers, on or over visualrepresentations of anatomical structure or magnitude data.

In some implementations, the image processing and analysis systems 104may generate a patient specific 4D-flow protocol for use in operating anMRI acquisition system 102 with a specific patient. Such may includesetting an appropriate velocity encoding (VENC) for operation of the MRImachine.

The image processing and analysis systems 104 may perform one or more ofthese operations or functions autonomously, without human input.Alternatively, the image processing and analysis systems 104 may performone or more of these operations or functions based on human input, forexample human input which identifies a point, location or plane, orwhich otherwise identifies a characteristic of anatomical tissue. Someplanes and/or views may be predefined, allowing the operator, user orclinician to simply select a plane (e.g., a valve plane) or adenominated view (e.g., 2 chamber view, 3 chamber view, 4 chamber view)to quickly and easily obtain the desired view.

The networked environment 200 may employ other computer systems andnetwork equipment, for example, additional servers, proxy servers,firewalls, routers and/or bridges. The image processing and analysissystems 104 will at times be referred to in the singular herein, butthis is not intended to limit the embodiments to a single device sincein typical embodiments there may be more than one image processing andanalysis systems 104 involved. Unless described otherwise, theconstruction and operation of the various blocks shown in FIG. 2 are ofconventional design. As a result, such blocks need not be described infurther detail herein, as they will be understood by those skilled inthe relevant art.

The image processing and analysis systems 104 may include one or moreprocessing units 212 a, 212 b (collectively 212), a system memory 214and a system bus 216 that couples various system components, includingthe system memory 214 to the processing units 212. The processing units212 may be any logic processing unit, such as one or more centralprocessing units (CPUs) 212 a, digital signal processors (DSPs) 212 b,application-specific integrated circuits (ASICs), field programmablegate arrays (FPGAs), etc. The system bus 216 can employ any known busstructures or architectures, including a memory bus with memorycontroller, a peripheral bus, and/or a local bus. The system memory 214includes read-only memory (“ROM”) 218 and random access memory (“RAM”)220. A basic input/output system (“BIOS”) 222, which can form part ofthe ROM 218, contains basic routines that help transfer informationbetween elements within the image processing and analysis system(s) 104,such as during start-up.

The image processing and analysis system(s) 104 may include a hard diskdrive 224 for reading from and writing to a hard disk 226, an opticaldisk drive 228 for reading from and writing to removable optical disks232, and/or a magnetic disk drive 230 for reading from and writing tomagnetic disks 234. The optical disk 232 can be a CD-ROM, while themagnetic disk 234 can be a magnetic floppy disk or diskette. The harddisk drive 224, optical disk drive 228 and magnetic disk drive 230 maycommunicate with the processing unit 212 via the system bus 216. Thehard disk drive 224, optical disk drive 228 and magnetic disk drive 230may include interfaces or controllers (not shown) coupled between suchdrives and the system bus 216, as is known by those skilled in therelevant art. The drives 224, 228 and 230, and their associatedcomputer-readable media 226, 232, 234, provide nonvolatile storage ofcomputer-readable instructions, data structures, program modules andother data for the image processing and analysis system(s) 104. Althoughthe depicted image processing and analysis systems 104 is illustratedemploying a hard disk 224, optical disk 228 and magnetic disk 230, thoseskilled in the relevant art will appreciate that other types ofcomputer-readable media that can store data accessible by a computer maybe employed, such as WORM drives, RAID drives, magnetic cassettes, flashmemory cards, digital video disks (“DVD”), Bernoulli cartridges, RAMs,ROMs, smart cards, etc.

Program modules can be stored in the system memory 214, such as anoperating system 236, one or more application programs 238, otherprograms or modules 240 and program data 242. Application programs 238may include instructions that cause the processor(s) 212 to performimage processing and analysis on MRI image data sets. For example, theapplication programs 238 may include instructions that cause theprocessor(s) 212 to perform phase error correction on phase or velocityrelated data. For example, the application programs 238 may includeinstructions that cause the processor(s) 212 to correct for phasealiasing. Also for example, the application programs 238 may includeinstructions that cause the processor(s) 212 to perform signalunwrapping. Additionally or alternatively, the application programs 238may include instructions that cause the processor(s) 212 to identifyand/or correct for artifacts.

The application programs 238 may include instructions that cause theprocessor(s) 212 to, for example, perform segmentation, distinguishingbetween various tissue type. The application programs 238 may includeinstructions that cause the processor(s) 212 to perform quantification,for instance comparing blood flow into and out of a closed anatomicalstructure or through two or more anatomical structures. The applicationprograms 238 may include instructions that cause the processor(s) 212 touse quantification to verify results, for example confirmingidentification of a certain tissue and/or providing an indication of anamount of certainty in the results. The application programs 238 mayinclude instructions that cause the processor(s) 212 to usequantification to identify the existence of a shunt.

The application programs 238 may include instructions that cause theprocessor(s) 212 to generate images which reflect blood flow, forexample distinguishing between arterial and venous blood flow. Forinstance, a first color map (e.g., blue) may be used to indicatearterial blood flow and a second color map (e.g., red) to indicatevenous blood flow. Aberrations (e.g., shunt) may be indicated using someother, distinctive color or visual emphasis. Color transfer functionsmay be applied to generate the color maps. The application programs 238may include instructions that cause the processor(s) 212 to superimposevisualization of flow (e.g., MRI phase data indicative of blood flowvelocity and/or volume) on visualization or rendered images of anatomy(e.g., MRI magnitude data). The instructions may cause the flowvisualization to be rendered as one or more layers on the images of theanatomy to provide a fusion of anatomy (i.e., magnitude) and flow (i.e.,phase) information, for example as a color heat map and/or as vectors(e.g. arrow icons) with direction and magnitude (e.g., represented bylength, line weight). The instructions may additionally or alternativelycause the generation of spatial mappings or visualization of signaldispersion, turbulence and/or pressure, which may be overlaid orsuperimposed on a spatial mapping or visualization of anatomicalstructure. Fusing visualization of phase or velocity related informationwith visualization of anatomical information or visual representationsof anatomical structures may facilitate the identification of anatomicallandmarks. The instructions may make use of sets or arrays of graphicsprocessing units or GPUs to quickly render the visualizations.

Transfer functions may also be applied to determine which visual effects(e.g., color) to apply to which tissue. For example, arterial blood flowmay be colored in shades of blue and venous blood flow in shades of red,while fat tissue colored as yellow. Anatomical structure, represented asmagnitude in the MRI image data set, may, for example, be visualizedusing grey scale. Depth of view may be operator or user adjustable, forexample via a slider control on a graphical user interface. Thus,visualization may be in the form a fusion view that advantageously fusesa visual representation of velocity information with a visualrepresentation of anatomical information or representation.

The application programs 238 may include instructions that cause theprocessor(s) 212 to generate a patient specific 4D-flow protocol for usein operating an MRI acquisition system 102 with a specific patient. Suchmay be based on patient specific input, for example provided by atechnician, and may be based on the particular MRI machine being used tocapture the MRI data set.

The application programs 238 may include instructions that cause theprocessor(s) 212 to receive image data sets from the MRI acquisitionsystem, process and/or analyze the image data sets, and provideprocessed and/or analyzed images and other information to users remotelylocated from the image processing, in a time sensitive and securemanner. Such is described in detail herein with reference to the variousFigures.

The system memory 214 may also include communications programs, forexample, a server 244 that causes the image processing and analysissystem(s) 104 to serve electronic information or files via the Internet,intranets, extranets, telecommunications networks, or other networks asdescribed below. The server 244 in the depicted embodiment is markuplanguage based, such as Hypertext Markup Language (HTML), ExtensibleMarkup Language (XML) or Wireless Markup Language (WML), and operateswith markup languages that use syntactically delimited characters addedto the data of a document to represent the structure of the document. Anumber of suitable servers may be commercially available such as thosefrom Mozilla, Google, Microsoft and Apple Computer.

While shown in FIG. 2 as being stored in the system memory 214, theoperating system 236, application programs 238, other programs/modules240, program data 242 and server 244 can be stored on the hard disk 226of the hard disk drive 224, the optical disk 232 of the optical diskdrive 228 and/or the magnetic disk 234 of the magnetic disk drive 230.

An operator can enter commands and information into the image processingand analysis system(s) 104 through input devices such as a touch screenor keyboard 246 and/or a pointing device such as a mouse 248, and/or viaa graphical user interface. Other input devices can include amicrophone, joystick, game pad, tablet, scanner, etc. These and otherinput devices are connected to one or more of the processing units 212through an interface 250 such as a serial port interface that couples tothe system bus 216, although other interfaces such as a parallel port, agame port or a wireless interface or a universal serial bus (“USB”) canbe used. A monitor 252 or other display device is coupled to the systembus 216 via a video interface 254, such as a video adapter. The imageprocessing and analysis system(s) 104 can include other output devices,such as speakers, printers, etc.

The image processing and analysis systems 104 can operate in a networkedenvironment 200 using logical connections to one or more remotecomputers and/or devices. For example, the image processing and analysis104 can operate in a networked environment 200 using logical connectionsto one or more MRI acquisition systems 102. Communications may be via awired and/or wireless network architecture, for instance, wired andwireless enterprise-wide computer networks, intranets, extranets, and/orthe Internet. Other embodiments may include other types ofcommunications networks including telecommunications networks, cellularnetworks, paging networks, and other mobile networks. There may be anyvariety of computers, switching devices, routers, bridges, firewalls andother devices in the communications paths between the image processingand analysis systems 104, the MRI acquisition systems 102.

The MRI acquisition systems 102 will typically take the form of an MRImachine 108 and one or more associated processor-based devices, forinstance an MRI control system 126 and/or MRI operator's system 128. TheMRI acquisition systems 102 capture MRI information or data sets frompatients. Thus, in some instances the MRI acquisition systems 102 may bedenominated as front end MRI acquisition systems or MRI capture systems,to distinguish such from the MRI image processing and analysis system(s)104, which in some instances may be denominated as MRI backend systems.The MRI acquisition systems 102 will at times each be referred to in thesingular herein, but this is not intended to limit the embodiments to asingle MRI acquisition system 102. In typical embodiments, there may bemore than one MRI acquisition system 102 and there will likely be alarge number of MRI acquisition systems 102 in the networked environment200.

The MRI acquisition systems 102 may be communicatively coupled to one ormore server computers (not shown). For instance, MRI acquisition systems102 may be communicatively coupled via one or more diagnostic facilityserver computers (not shown), routers (not shown), bridges (not shown),LANs 106 a (FIG. 1), etc., which may include or implement a firewall 156a (FIG. 1). The server computers (not shown) may execute a set of serverinstructions to function as a server for a number of MRI acquisitionsystems 102 (i.e., clients) communicatively coupled via a LAN 106 a at aclinical facility or site, and thus act as intermediaries between theMRI acquisition systems 102 and the MRI image processing and analysissystem(s) 104. The MRI acquisition systems 102 may execute a set ofclient instructions to function as a client of the server computer(s),which are communicatively coupled via a WAN.

The MRI control system 126 typically includes one or more processor(e.g., microprocessors, central processing units, digital signalprocessors, graphical processing units) and non-transitoryprocessor-readable memory (e.g., ROM, RAM, Flash, magnetic and/oroptical disks). The MRI operator's system 128 may take the form of acomputer, for instance personal computers (e.g., desktop or laptopcomputers), net book computers, tablet computers, smart phones, personaldigital assistants, workstation computers and/or mainframe computers,and the like, executing appropriate instructions.

The MRI operator's system 128 may include one or more processing units268, system memories 269 and a system bus (not shown) that couplesvarious system components including the system memory 269 to theprocessing unit 268.

The processing unit 268 may be any logic processing unit, such as one ormore central processing units (CPUs), digital signal processors (DSPs),application-specific integrated circuits (ASICs), field programmablegate arrays (FPGAs), graphical processing units (GPUs), etc.Non-limiting examples of commercially available computer systemsinclude, but are not limited to, an 80×86 or Pentium seriesmicroprocessor from Intel Corporation, U.S.A., a PowerPC microprocessorfrom IBM, a Sparc microprocessor from Sun Microsystems, Inc., a PA-MSCseries microprocessor from Hewlett-Packard Company, a 68xxx seriesmicroprocessor from Motorola Corporation, an ATOM processor, or an A4 orA5 processor. Unless described otherwise, the construction and operationof the various blocks of the MRI acquisition systems 102 shown in FIG. 2are of conventional design. As a result, such blocks need not bedescribed in further detail herein, as they will be understood by thoseskilled in the relevant art.

The system bus can employ any known bus structures or architectures,including a memory bus with memory controller, a peripheral bus, and alocal bus. The system memory 269 includes read-only memory (“ROM”) 270and random access memory (“RAM”) 272. A basic input/output system(“BIOS”) 271, which can form part of the ROM 270, contains basicroutines that help transfer information between elements within the MRIacquisition systems 102, such as during start-up.

The MRI operator's system 128 may also include one or more media drives273, e.g., a hard disk drive, magnetic disk drive, WORM drive, and/oroptical disk drive, for reading from and writing to computer-readablestorage media 274, e.g., hard disk, optical disks, and/or magneticdisks. The nontransitory computer-readable storage media 274 may, forexample, take the form of removable media. For example, hard disks maytake the form of a Winchester drive, and optical disks can take the formof CD-ROMs, while magnetic disks can take the form of magnetic floppydisks or diskettes. The media drive(s) 273 communicate with theprocessing unit 268 via one or more system buses. The media drives 273may include interfaces or controllers (not shown) coupled between suchdrives and the system bus, as is known by those skilled in the relevantart. The media drives 273, and their associated nontransitorycomputer-readable storage media 274, provide nonvolatile storage ofcomputer readable instructions, data structures, program modules andother data for MRI acquisition system(s) 102. Although described asemploying computer-readable storage media 274 such as hard disks,optical disks and magnetic disks, those skilled in the relevant art willappreciate that MRI operator's system(s) 128 may employ other types ofnontransitory computer-readable storage media that can store dataaccessible by a computer, such as magnetic cassettes, flash memorycards, digital video disks (“DVD”), Bernoulli cartridges, RAMs, ROMs,smart cards, etc. Data or information, for example, electronic ordigital files or data or metadata related to such can be stored in thenontransitory computer-readable storage media 274.

Program modules, such as an operating system, one or more applicationprograms, other programs or modules and program data, can be stored inthe system memory 269. Program modules may include instructions foraccessing a Website, extranet site or other site or services (e.g., Webservices) and associated Webpages, other pages, screens or serviceshosted or provided by the MRI processing and analysis system(s) 104.

In particular, the system memory 269 may include communications programsthat permit the MRI acquisition system(s) 102 to exchange electronic ordigital information or files or data or metadata with the MRI imageprocessing and/or analysis services provided by the MRI processing andanalysis system(s) 104. The communications programs may, for example, bea Web client or browser that permits the MRI acquisition system(s) 102to access and exchange information, files, data and/or metadata withsources such as Web sites of the Internet, corporate intranets,extranets, or other networks. Such may require that an end user clienthave sufficient right, permission, privilege or authority for accessinga given Website, for example, one hosted by the MRI processing andanalysis system(s) 104. As discussed herein, patient identifying datamay reside on systems operated by or for the clinical facility, and maynot be accessible by or through the systems operated by or for the imageprocessing facility or the image processing facility personnel. Thebrowser may, for example, be markup language based, such as HypertextMarkup Language (HTML), Extensible Markup Language (XML) or WirelessMarkup Language (WML), and may operate with markup languages that usesyntactically delimited characters added to the data of a document torepresent the structure of the document.

While described as being stored in the system memory 269, the operatingsystem, application programs, other programs/modules, program dataand/or browser can be stored on the computer-readable storage media 274of the media drive(s) 273. An operator can enter commands andinformation into the MRI operator's system(s) 128 via a user interface275 through input devices such as a touch screen or keyboard 276 and/ora pointing device 277 such as a mouse. Other input devices can include amicrophone, joystick, game pad, tablet, scanner, etc. These and otherinput devices are connected to the processing unit 269 through aninterface such as a serial port interface that couples to the systembus, although other interfaces such as a parallel port, a game port or awireless interface or a universal serial bus (“USB”) can be used. Adisplay or monitor 278 may be coupled to the system bus via a videointerface, such as a video adapter. The MRI operator system(s) 128 caninclude other output devices, such as speakers, printers, etc.

The MRI image processing and analysis system may build a staticinterface, which allows various tissue types to be subtracted or addedto an MRI 4D flow data set. For example, static tissues such as fat orbone may be distinguished from non-static tissues such as air or flowingblood. The MRI image processing and analysis system may furtherautonomously distinguish between various non-static tissues, forinstance distinguishing between air (e.g., lungs) and flowing blood.Further, the MRI image processing and analysis system may distinguishbetween arterial and venous blood flows.

For instance, the MRI image processing and analysis system may employfast Fourier transformation to identify blood tissue, which is expectedto have a pulsatile pattern or waveform. Air or lung will tend to have arandom appear pattern over a defined volume, as velocity of neighboringvoxels are compared. For instance, voxels with strong or fast velocitiesare typically indicative or air. The MRI data sets may be rather large,for example 256×256×256×20 time points. The MRI image processing andanalysis system may rely on gradients (e.g., gradient descent method) todetect different tissue types, and may advantageously employ a numericalapproach rather than an analytic solution approach to quickly handle therelatively large MRI data sets. By controlling the number of significantdigits (e.g., 2) of the numerical approach, the MRI image processing andanalysis system may achieve very fast (e.g., 1 second as opposed to 30minutes) results, while still obtaining results that are sufficientlyaccurate for the particular application.

In some implementations, different tissue types may be subtracted fromthe patient MRI data set, one at a time. For example, subtracting air orlung, subtracting blood, separating atrial from venous flow, subtractingbone, leaving fat. Notably, fat is static, so each voxel representingfat should have zero velocity associated therewith. The MRI imageprocessing and analysis system may advantageously employ such a groundtruth to correct MRI data set for all tissue types.

If a non-zero velocity is found for fat type tissue, this can be used toadjust the entire set of data (e.g., for all tissue). For example, theMRI image processing and analysis system may generate or create apolynomial model based on an identified area or volume (e.g., fat orsoft tissue). Such may be a simple polynomial (e.g., ax²+bx+c) or a muchmore complex polynomial (e.g., non-rational uniform b-spline). The MRIimage processing and analysis system may find the coefficients to thepolynomial fits the image, for example using linear regressiontechniques or linear algebra techniques. This results in a model whichthe MRI image processing and analysis system may apply to (e.g.,subtract from) the whole field, not just the fat or soft tissue.

In one implementations, a replica body is imaged to create a referenceset of data or “phantom” model which can be subtracted from actuallypatient data. The replica body may be formed of materials that mimic theMRI response of an actually body, although will not have blood flow. Aphase gradient in reference set of data or “phantom” model may representnoise (e.g., random noise), and can be used to correct a phase shift.This approach advantageously avoids the need to generate a polynomialfit to the 3D data. The generated reference set or phantom model may bevalid over a number of months of MRI machine operation, although a newset of reference data or phantom model should be generated if the MRImachine is serviced or moved.

The MRI image processing and analysis system may define various filtersor mask for removing different tissue types or for removing eithervenous or atrial blood flow. Filters or masks may remove anomalous bloodflow, such as blood flow outside some reasonable range (e.g., too highor fast, too slow or low) or where blood appears to be flowing in ananatomical structure (e.g., bone) where there should be no blood flow. Afilter or mask may also be defined to display only voxels havingmagnitudes with an absolute value greater than some threshold value. Afilter or mask may also be defined to display only voxels with anabsolute value of the cross product of magnitude and a velocity vectorwhich absolute value is greater than some defined threshold. Further afilter or mask may be defined that shows only voxels having vectors in asame direction as the vectors of neighboring voxels, to for instanceidentify or view high velocity jets. Notably, velocity vectors ofneighboring voxels are in different directions may be an indication ofnoise.

Pre-Processing

Mass Conservation Correction Error Reduction

The goal of this pre-processing algorithm is to correct the flow data(segmentation, flow quantification, and background phase errorcorrection). There are 3 flow datasets that need to be corrected: i) xvelocity, ii) y velocity, and iii) z velocity. Due to imaging artifacts(e.g. turbulence) and noise, the flow data will be biased. To correctfor this, mass conservation (i.e. physical principles) is used tocorrect the flow data. Mass conservation tells us that the mass of aclosed system must remain constant over time, as system mass cannotchange quantity if it is not added or removed. Therefore, if a boundaryis defined within the heart (i.e., luminal border of the heart chambersand vessels), the flow entering a stationary volume must match the flowexiting the volume if the fluid is incompressible. This theory can beapplied to any volume. In the case of blood flow, we make assumptionsthat the blood density is constant, and therefore the continuityequation simplifies to mean that the divergence of velocity field iszero everywhere. Physically, this is equivalent to saying that the localvolume dilation rate is zero (i.e., du/dx+dv/dy+dw/dz=0). It isimpossible to force this condition everywhere, but the local volumedilation can be minimized over all time points. There are severaldifferent types of algorithms that will minimize du/dx+dv/dy+dw/dz, butthe most common is an algorithm that will generate a least squaresdivergence free approximation of the flow field. There are several waysto construct a least squares approximation to the flow field with theconstraint of minimizing the divergence, and several differentalgorithms to achieve this.

Typically there is an iterative approach involved that tries to minimizethe residual divergence with every pass. In addition, knowing the exactboundary of the vessel/chamber is important to ensure zero flux throughthe boundary. Without said boundary, flow could be allowed to escapeinto the heart muscle and fat. In addition, there could be artifact inthe image (i.e., caused by turbulence). If a user identifies a regionwhere there is artifact (“bad data”), this region is not used toinfluence the velocity value correction in the “good data” region.

Another approach to solve this is using optimization: attempting tominimize divergence while ensuring the original vector field is changedas little as possible (to still capture local effects and preventsmoothing).

Conservation of momentum can be applied in a later act to estimatepressure gradients across a vessel in addition to wall shear stress.This mass conservation step is critical to ensure accurate pressureestimations.

Automatic Phase Aliasing Correction Using Time Domain

Phase aliasing occurs when the VENC that was set for the 4D-Flow scanwas too low causing the velocity values to “wrap”; from large positivevalues to large negative values or vice versa. In principle, thiswrapping can happen more than once.

By analyzing the overall time variation of velocity data it is possibleto determine the main points of the cardiac cycle (described elsewhere).Under the assumption that there is no velocity aliasing in the image atpeak diastole and also under the assumption that velocity at a singlepoint in space does not, in reality, vary by more than +/−VENC from onetime point to the next, one is able to correct for phase aliasing byexamining the time variation of each point in space as follows:

i) Identify the peak diastole time point and assume that there is nophase aliasing at that point.

ii) Examine the time behavior of each acquired velocity componentindividually.

iii) For each point in space (voxel) in each velocity image track thechange in velocity from one time point to the next. If the velocity isobserved to vary by more than +/−VENC assume that aliasing has occurred.

iv) When aliasing is detected the wrap count for that point is eitherincremented if observed velocity reduced by more than VENC ordecremented if the observed velocity increased by more than VENC.

v) At each point in time the velocity is altered according to thecurrent accumulated wrap count for that point by adding the product ofwrap count with two times VENC.

vi) Check that wrap count has returned to a value of zero once thecurrent time point has return to the initial peak diastole startingpoint. If wrap count has not returned to zero, then the processing ofthat point in space (voxel) should be considered to be an error.

The method can be improved and made more performant by using othermethods to determine the pixels of interest. For example, one may useother methods to determine the pixels that are most likely to representblood flow and only process these pixels.

This method also has the characteristic and advantage of beingself-diagnosing. The wrap count for all valid blood voxels (as opposedto air, for example) should return to zero when the processing for thatvoxel over time has finished. Errors can be kept track of on a voxel byvoxel basis though this has the weakness that this method of errordetection is not guaranteed to catch every error voxel. However, inaddition, by looking for a low overall error rate as a fraction of thenumber of pixels where corrections were applied, one can ascertainwhether or not the necessary initial assumptions, required by themethod, are largely correct.

Automatic Phase Aliasing Correction

Phase aliasing occurs when the VENC that was set for the 4D-Flow scanwas too low. It is very easy to find voxels that have been aliasedbecause of the following:

i) The VENC of each scan is known since this information is in theheader file of all the DICOM images.

ii) Identify sharp changes in flow velocity around the +/−VENC velocity(i.e., if VENC is set at 100 cm/s, look for sharp changes in velocityaround +/−99 cm/s.) Sharp changes in velocity means a voxel may have avelocity value of 100 cm/s, and the adjacent voxel has a value of −99cm/s.

iii) Then find the border of the aliased region by connecting all thevoxels that have a sharp gradient around +/−VENC.

iv) This results in an enclosed boundary. Determine if all the voxels inthe region of the enclosed boundary are aliased. By starting at theboundary and moving toward the centroid of the 3D region, the system caninterrogate every voxel to ensure that there is no significant jump(across a VENC).

v) If no steep jump is encountered then the VENC velocity can be addedto all voxels within the aliased region.

vi) If a steep jump is encountered, then the problem becomes a littlemore challenging (but still solvable). In this case, a voxel could bewrapped several times (i.e., if the VENC is set at 100 cm/s but thevelocity at the voxel actually is 499 cm/s, this will be wrapped 2 timesand the velocity will be shown as 99 cm/s). The way to correct the datais to look at the velocity of neighboring voxels. If there is a jump ofmore than 1.5 times the VENC, then 2*VENC needs to be added orsubtracted in that enclosed region. The selection of adding orsubtracting is chosen to minimize the discontinuity across theneighboring voxels.

vii) To improve the algorithm further, information about where statictissue is can be critical in defining where absolute zero must be. Sincestatic tissue has 0 velocity, those voxels that are identified as beingstatic tissue must not be wrapped. There then must be a continuousincrease in speed away from the wall due to physical properties (i.e.,fluid boundary layer). The only assumption in all of this is thatneighboring voxels do not have more than a 1.5*VENC jump across oneanother.

Spline Real-Time Eddy Current Correction

When an MRI acquisition is performed the data can contain artifacts dueto eddy currents in the magnetic field. In a 4D flow acquisition inwhich particle velocity is acquired the artifacts will cause thevelocity values to be incorrect. It is critical with 4D flow and 2Dphase contrast (“2D PC”) to have accurate velocity data in order toquantify blood flow through vessels.

At least one technique for correcting the eddy current artifactsinvolves:

-   -   volumetric segmentation of static (zero velocity) tissues; and    -   using the velocity data at these static locations to fit a curve        to the volume that can be subtracted from the raw data.

While it is possible to calculate the model using individual velocitypixels, the resulting matrices are very large and the calculation cantake a very long time. To expedite the calculation, the volume may bedivided into a grid of blocks, to produce what is effectively a reducedresolution velocity volume. The dimension of the blocks may beadjustable by the user, but is typically 8 mm×8 mm×8 mm, for example. Anindividual block may then be either masked or assigned a value whichrepresents the average unmasked velocity within the region defined bythe block. In order to be assigned a value (in other words, to beconsidered unmasked) a user adjustable fraction of the region (e.g.,50%) should be unmasked. The model is then calculated using the unmaskedvelocity values in this reduced resolution volume.

One method of producing a model of the eddy current error is to fill inthe masked regions using spline basis functions wherein the order of thespline may vary due to the number of available control values (with thesimplest option being a piecewise linear function between controlvalues). Splines are produced between control points in all threeprimary directions. The three resulting models are then averaged toproduce a single model and the final result smoothed.

A second method of producing a model of the eddy current error isfitting a low order three dimensional polynomial directly to theunmasked velocity values in the reduced resolution volume.

Because the resolution of the volume has been greatly reduced, both ofthese methods are efficient options and can be easily executed at runtime.

Once a reduced resolution model of the eddy current error is produced,it is up-sampled to the original resolution and then subtracted from theoriginal data. After subtraction, the static tissues should have aneffective velocity of zero, and the non-static tissues will have eddycurrent artifacts removed. This will allow for accurate flowquantification. Based on the analysis of our test data, results fromthis new and innovative approach is a smooth 3D time-varying functionrepresenting the error in the volume and is very fast to calculate.

Based on the analysis of our test data, results from this new andinnovative approach is a smooth 3D time-varying function representingthe error in the volume and is very fast to calculate.

For the final step of upsampling to the original resolution, ourapproach to applying the correction algorithm was to use tri-linearsampling from the correction volume, which proved successful. For eachelement in the source volume we perform a tri-linear blend of eightelements in the correction volume and subtract that value from thesource data. After applying our new correction function flowmeasurements were found to be within 3% error. In addition, as part ofthe process requires user interaction, the requirement for real-timeperformance was also met as evaluating and applying our new correctiontakes on the order of milliseconds instead of hours.

Solids for Background Phase Error Correction

The blood velocity information in the flow-4D MRI scan has an errorwhich needs to be corrected for in order to get accurate blood flowcalculations. The error signal in the static tissue can be used toprovide a correction function for the non-static tissue (describedelsewhere). A three-dimensional volume of tissue called a solid can becreated to identify a section of either static or non-static tissue. Asolid can be created using two methods:

Orthogonal contours: The user can manually draw some number (typicallythree and typically orthogonal) intersecting cylinders defined by closedcontours. The intersection of these contours represents a solid,three-dimensional volume of either static or non-static tissue. Thecontours do not need to be perfectly orthogonal and the user can createthe contours at any location.

3D floods: The user can alternatively choose to automatically create asolid by specifying the starting point of a three-dimensional flood. Theflood can be used on any image including phase images. The image isflooded based on a threshold below and above the value at the pointwhere the user clicked. The user can control both the threshold and themaximum radius of the flood that is generated.

Multiple solids can be created using either method to mark areas of bothstatic and non-static tissue. The masks associated with non-statictissue are added together. The masks associated with static tissue arethen used override or unmask previously masked regions as necessary.

In some situations there will be artifact in the images. Artifact needsto be removed or highlighted in order to prevent a user from giving anincorrect diagnosis. Our software has pre-processing steps (i.e., eddycurrent correction) that compute a metric based on all of the voxels inthe dataset. To avoid these pre-processing steps a tool is used toidentify voxels that have artifact, and these voxels are removed fromany pre-processing step (but not removed for visualization purposes).The tool can be a manual segmentation tool (i.e., user circles areasthat have artifact), or a semi-automatic/automatic segmentation toolthat identifies artifact. Regardless of the tool specifics our softwareneeds a feature to remove “bad voxels” from being quantified.

Automatic Background Phase Error Correction

Accurate measurement of velocity in flow-4D MRI scans requires theapplication of corrections for the false signal introduced by eddycurrents. Determining eddy current correction (ECC) is done by examiningthe velocity signal in static (non-moving) tissue. This requires themasking of all moving tissue, blood and air. This claim describes amethod for doing this automatically, without user intervention.Automatic correction is useful as it not only makes the software simplerand quicker to use, it allows the correction to be precomputed andapplied when the user first opens the study. It is also very importantas it allows other preprocessing algorithms, doing things like automaticsegmentation and measurement, to benefit from ECC.

Automatic ECC is done by computing initial starting values for threefilters that the user is then free to adjust after the study is open.Air is masked by masking out regions with anatomy image values below aset threshold. This threshold is determined automatically by an analysisof the histogram for anatomy image values over the entire scannedvolume. The histogram for these values over the chest cavity displays apattern that allows for the automatic detection of the image valuescorresponding to air.

In addition, two filters have been developed that reliably detectregions of blood flow and regions of heart wall movement. The region ofthe heart can be satisfactorily masked out by appropriately settingthese two filters. Due to the normalization used in the production ofthese filters along with their naturally consistent nature, satisfactoryresults can be obtained simply by setting these filters to predeterminedvalues (for example, 50%). The automatic setting of these filters couldbe further improved (or tweaked) by analysis of the values produced bythese filters, similar to what was described in the previous paragraphfor the detection of regions of air. The settings could also be tweakedby examining the resulting ECC and looking for regions that show largevariation over the cardiac cycle.

The correct values for these filters, determined when the study ispreprocessed, are then simply stored in the database along with theother study information, allowing the client software to set these asthe default values when the study is first opened.

Visualization

Temporal Landmark Quantification and Visualization

It useful to be able to identify landmarks (i.e., points, lines, planes,areas, volumes) in the body and specifically in the heart. Severallandmarks are dynamic in nature (e.g., mitral valve plane), and thus itis important to track their movement in time:

Points: Track 3D path (which is a line) over time.

Lines: Track 3D path of 2 endpoints over time.

Planes: Track a point on a plane and the plane's normal vector overtime.

Areas: Track dilating contour, contour centroid, and contour normalvector over time.

Volumes: Discretize surface of volume and track each discretized pointover time.

There are two acts to temporal landmark quantification andvisualization:

1) Detection: The first step is to identify the landmarks over time.This can be done manually or automatically.

Manual detection: The user can indicate the position and orientation ofeach landmark. One method of doing this could be to navigate the imageusing pan and rotate so that the center of the image is at the desiredlocation of the landmark. The location of the landmark can be differentat different points in time and it will be interpolated for time pointswhere the user has not explicitly set it. It is indicated to the user ifa landmark is interpolated.

2) Display: Depending on the type of landmark a different type of methodto display the data is used. For instance if a contour does not move orchange it's normal vector over time (i.e., just dilate), it makes sensefor the user's view plane to not change and always be aligned with thecontour. If this contour does move, we can imagine following the planesuch that the view is always aligned with the plane for each time point.The view plane can be either from a Lagrangian perspective or from anEulerian perspective. For volumes, an Eulerian perspective is moreappropriate where the surface of a volume dilates and this can bevisualized with a camera that is fixed in space (the user can change thecamera location as needed).

Cardiac views: The left ventricle apex, right ventricle apex, mitralvalve, tricuspid valve, aortic valve, and pulmonic valve can be used tocreate two-chamber, three-chamber, four-chamber, and short-axis views ofboth the right and left ventricles once the landmarks have beendetected. The orientations of these views are specified in the MayoClinic Guide to Cardiac MR. An orientation and zoom level for each viewcan be calculated from the positions of the landmarks. If the landmark'sposition changes in time the view will change in time accordingly.

Example landmarks for each view:

Left two chamber: aortic valve, mitral valve, tricuspid valve, leftventricle apex

Left three chamber: aortic valve, mitral valve, left ventricle apex

Left four chamber: tricuspid valve, mitral valve, left ventricle apex

Left short axis: mitral valve, left ventricle apex

Right two chamber: pulmonic valve, tricuspid valve, mitral valve, rightventricle apex

Right three chamber: pulmonic valve, tricuspid valve, right ventricleapex

Right four chamber: tricuspid valve, mitral valve, right ventricle apex

Right short axis: tricuspid valve, right ventricle apex

Interactive Landmark Based Views

Once certain landmarks have been placed (e.g., aortic valve, mitralvalve, left ventricle apex, anterior papillary muscle, posteriorpapillary muscle, pulmonary valve, tricuspid valve, right ventricleapex, LPA, RPA, SVC, IVC, descending aorta), automatic views can becreated to display the anatomy of interest. Clinicians are used toviewing a certain landmark with 3 perpendicular views or in the case ofthe heart using a 4 chamber view or a left or right ventricle 2 or 3chamber view. By updating the location of just 1 landmark for one of thetime points, all views update accordingly such that either the views arealways perpendicular or the 2, 3, and 4 chamber views remain intact.Once the landmarks have been placed, and the views generatedautomatically, these views can be saved in the report section of thesoftware and exported in any format (i.e., an image) include a cinemovie (i.e., multiple images over time).

4D Mesh Creation from Closed Contours

Once contours have been placed along the short axis (possibly curved)for each time point, the mesh is then generated independently for eachtime point. This is done by rotating each contour in the short axisstack so as to minimize twisting, and then generating open cubic splinewhich connects the first point in each contour, a second spline thatconnects the second point, so on for each point in the contour (eachslice's contour has the same number of points. The result of thisprocess is a cylindrical grid of points which we use as the vertices ofthe mesh.

The process of minimizing twisting is done by computing an open cubichermite spline from the centroid of one contour to the centroid of thecontour above, and then running this spline from each point on the lowercontour until it intersects the plane the contour above it lies in. Thesystem computes this intersection point and then determines which ofthese intersection points lies closest to an actual contour point in theupper contour. The contour is then rotated such that these two pointswill lie on the same long axis spline.

The current implementation works reasonably well with both curved andstraight axes when the contours are reasonably circular and thedifference between neighboring contours spatially is minimal. However,in the case of the right ventricle where the contours are not circular,excessive twisting is sometimes introduced by the currentimplementation. To minimize this, we should get rid of the long axisspline approach and switch to one where the number of triangles betweenany two slices may differ. Doing this minimizes twisting more locallywhich will result in an overall smoother mesh.

Snap to Flow Tool

Accurately observing or measuring the blood flow in a flow-4D scanrequires the user to align an MPR so that it is perpendicular to thedirection of flow. This describes a method for creating a tool allowingthe user to set the correct orientation of the MPR automatically.

In order to align an MPR the user first activates the tool and thenclicks on a central region of the blood flow in question. The clickpoints then serves as the center of rotation when the MPR is aligned,moving the click point to the center of the resulting MPR. Alignment isdone by averaging the blood flow in a small region around the clickpoint. To do this accurately, the measurement is done using the timepoint corresponding to peak blood flow, regardless of the time pointthat the user is currently viewing while using the tool. This generallyimplies doing the measurement at peak systole.

While the user is allowed to adjust the time point for peak systole,this point is first determined automatically by the executing softwareduring preprocessing of the data set, and this automatic value is usedas the default when the study is first opened by the user. A filter hasbeen developed (described elsewhere) for automatically determiningregions of blood flow within the scanned volume. Peak systole is thendetermined by examining the time dependence of the overall flow withinthe filtered or mask region determined to correspond to blood.

Once the direction of flow has been accurately determined it isstraightforward to adjust the orientation of the MPR so that it is on aplane perpendicular to the flow.

Quantification

Automatic Blood Flow Quantification

The blood flow in a chamber and/or vessel can be automaticallyquantified by first isolating the blood pool (see segmentation methodsdescribed in this document) and placing a plane on a landmark (that canbe defined using the methods above) that is roughly perpendicular to theflow in the chamber/vessel (i.e., normal of plane is aligned with theflow). Once these 2 acts have been achieved, the intersection betweenthe plane and blood pool creates a contour. All the voxels within thecontour are flagged. Next is to sum the dot product of the plane'snormal vector with the velocity vector of that voxel (in addition tonormalizing by the area of the voxel) for every voxel to give the totalflow. The flow at that contour can be automatically displayed on screenor in report that could be eventually exported.

Allowing a user to select a position on an image has many importantapplications. In performing measurements a user might want to measurethe distance from one point to another. In an application that uses MPRsfrom a volume of data, the points on an image represent locations in 3Dspace. These 3D points are easy to compute from the metadata associatedwith the image. In an application that uses volume rendering, allowing auser to select a point in 3D space is more difficult since each pixelcould be at a different depth.

In typical front to back volume raycasting with an increasing alphacompositing function that terminates once alpha reaches 1.0, determiningthe depth of the pixel can be done by keeping track of where the rayterminates. When raycasting back to front, there is no early raytermination. The result color is simply updated based on the compositingfunction. Typically the compositing function will make air transparentand as such the color will stop changing as the ray exits the materialclosest to the eye. By keeping track of when the color stopped changing,this depth for each pixel can be used to transform the 2D user selectedcoordinate back into a 3D location in space. This 3D location selectioncan be used to select a blood vessel and then automatically quantifyflow.

Automatic Shunt Detection

Instead of trying to find an exact location for a shunt, the firstoperation would be to identify if a shunt exists. One simple method ofidentifying if a shunt is present is to measure the left heart flow (Qs)and the right heart flow (Qp). Qp and Qs can be measured either manually(e.g., by placing a contour) or automatically if landmarks and bloodpool segmentation have been completed. If these numbers do not matchwithin a certain threshold, the scan can be flagged as potentiallyhaving a shunt.

These measurements could be done automatically using the followingtechnique:

i) Automatic measurement of cardiac output (Qs) is described elsewhereas is the production of masks for both aortic and pulmonic flow alongwith automatic estimates of the location of the aortic and pulmonicvalves.

ii) Once the valve regions have been identified, it is a straightforwardtask to take them and the already determined pulmonic flow regions, moveslightly downstream from the valve and produce flow measurement contoursin a similar way to what has been described for cardiac output. Oncesuitable contours have been identified for measuring pulmonic flow theexisting flow measurement algorithms can be used to determine the outputfrom the right ventricle.

iii) Use the automatic flow measurement to indicate the likelihood thata shunt exists.

Automatic Detection of Peak and End Systole and Diastole

Much automatic processing depends on the ability to first identify thetime points corresponding to the main temporal landmarks in the cardiaccycle: peak and end systole and diastole.

As described elsewhere, we are able to use a Fourier analysis techniqueon the velocity images in order to identify regions of blood flow withinthe heart along with the main arteries and veins around the heart. Oncethese main regions of blood flow have been identified, we find the totalblood flow over the identified voxels at each point in time (typically20 time points). The system is then able to analyze the resultingfunction of time to determine the landmarks in the cardiac cycle. Thetime point with the most flow is first assigned the peak systolelandmark. From there the function is analyzed in both directions in timeto determine the points where the flow tends to level off. The pointbefore peak systole where the total flow levels off (the point rightbefore it starts to rise quickly) corresponds to end diastole. Followingpeak systole, the total flow drops quickly until it levels off, whichcorresponds to end systole. Peak diastole is not typically awell-defined point so we place this temporal landmark at the pointmidway between end systole and end diastole.

Automatic Cardiac Output and Volumetric Measurements

Automatic measurement of cardiac output is done using the followingmethod:

i) The relationship between the main DFT components of the velocityimages, along with the already determined peak systole landmark(described elsewhere) are used to identify the main regions of arterialflow from the left and right ventricles.

ii) A variety of flow continuity filters is used, one after the other,to separate the arterial flow region into two pieces, aortic andpulmonic flow. The point in the initial arterial flow mask with thelargest velocity provides a reliable point known to be in either theaorta or the pulmonary artery. Separation of the two regions of flow canbe determined, for example, by examination of the size of the regionwithin the resulting filter that can be flooded starting at the point ofmaximum flow. Once the first piece is identified, the second piece canbe identified, for example, by flooding from the maximum flow point inthe remaining regions.

iii) Once two regions have been identified one corresponding to aorticflow and one to pulmonic flow, the two regions can be allowed to growback a limited amount (with individual pixels only being assigned to onemask or the other) and with the original arterial flow mask providingabsolute limits to the amount of growth. Allowing at least a littledilation of the masks can also be very important as the precedingprocess operations may have put small holes in the resulting regionsthat would tend to hinder the next steps in the method.

iv) The two flow regions can be identified as aortic and pulmonic flowbased on their spatial relationship to each other and their verydifferent expected shape and orientation in space. Once this is done theoriginal arterial flow mask is essentially divided into two regions, onelabeled aortic flow and the other labeled pulmonic flow.

v) As the aorta is essentially one continuous pipe, the path of theaorta can be traced from a starting point within the artery until thetwo ends are reached. At each point the main peak systole flow directioncan be determined by averaging over a small region around the point.Orthogonals to the flow direction can then be projected from thestarting point at regular angular intervals to determine the boundarywith the masked aortic region, thus determining an approximatelycircular contour around the starting point.

vi) Once a contour has been determined as a polygon on the planeorthogonal to the main flow direction for some starting point. Thestarting point is re-centered in the polygon. At this point a small step(for example, one millimeter) can be taken from the center point in thepositive or negative flow direction, depending on which way from thestarting point we are tracing, and the process then repeated. This iscontinued until we step out of the mask at each end.

vii) Once contours have been produced at regular intervals along theaorta, essentially producing a mesh, they are refined at each individualtime point using either the anatomy images (possible if dealing with ablood flow enhanced dataset) or by using through velocity for thesystole time points and interpolation between. One possible approach isto use a snake algorithm to accurately identify the desired boundary foreach contour at each point in time.

viii) Once refined contours have been determined, the major and minordiameters of each contour are measured, the major diameter being thelargest diameter and the minor diameter being the largest diameterorthogonal to the major diameter.

viii) The next task is to identify good contours in the main region ofthe ascending aorta between the aortic valve and the bifurcations thatoccur at the top of the aorta, as this is the region that needs to beused when measuring cardiac output. This can be done in a number ofacts. First, ascending aorta regions are easily separated fromdescending regions by flow direction. The remaining contours can then bescored using a combination of the continuity and variability of thecontour area and diameters (major and minor) both spatially (along theaorta) and temporally at one point in the aorta. Scores can be averagedalong the aorta to look for regions of good scoring as opposed to simplyidentifying individual, highly scored, contours. Using this method, onecan eliminate regions in the neighborhood of the bifurcations at the topof the aorta and also regions that might exist near the aortic valve andon into the left ventricle, as these regions, by their nature, willscore badly.

ix) Once good regions of the ascending aorta have been identified, thehighest scoring individual contours can be selected for the actualcardiac output measurement. If possible, measurement is done at multiplepoints along the ascending aorta, which improves the result throughaveraging along with providing automatic determination of the quality ofthe measurement by examining the variability (thereby, also providingestimates of the measurement uncertainty). In addition, examining theresult of multiple measurements of the flow along the ascending aortaallows for a judgement on the quality of the velocityeddy-current-correction that is currently being applied.

x) Once the ideal contours have been selected along the ascending aorta,cardiac output is determined by the usual flow measurement techniques.

4D Volumetric Measurement

In order to calculate the volume of a particular region, we havedeveloped four options within the Arterys cloud interface.

Option 1: Fixed Axis

Two points in 3D space define the primary axis of a volume of interest.A straight line connects these 2 points (i.e. fixed axis). The axis isthen divided into discrete points (say 2˜40 for example) that define thelocations where a slice will be placed. Slices are aligned orthogonal tothe axis such that they do not intersect. Slices do not have to beevenly spaced. An MPR is rendered at all slice locations to allow a userto see what the medical image looks like at that slice location. Theneither manually or automatically a closed contour is created on everyslice to define the boundary of the volume at that slice location. Therecould be multiple closed contours at every slice location. There couldalso be no contours at all on one or more slices. In the case of 4D orhigher dimensional studies (i.e., studies that show volume change, orsaid different, multiple frames per slice), there can be separatecontours per frame. Once all contours have been placed for all framesand slices, a 3D surface is created connecting the contours of allslices for a particular frame. The way the 3D surface is created from aset of closed contours is explained above in “4D Mesh Creation fromClosed Contours”. If there is a 4D or higher dimensional volume, achange in volume can be calculated by computing the volume of each frameand subtracting it with another frame. This is especially important whentrying to quantify ventricular function which then gives stroke volumesand ejection fractions.

Option 2: Moving Straight Axis

This method is similar to Option 1, except that in the case of a 4Dvolume, the landmarks or points that define the two endpoints of theaxis can move over each frame (e.g. time point). This causes the volumeto potentially move locations in 3D space without changing volume.

Option 3: Fixed Curved Axis.

This method is similar to Option 1, except that the line connecting the2 endpoints does not have to be straight. This line can be curved orhave multiple straight and curved sections. This is handled in thesystem with a spline that connects points/locations between 2 endpoints.These points/locations can be anywhere and not necessarily alwaysbetween the 2 endpoints.

Option 4: Moving Curved Axis

This method is similar to Option 2, except that in the case of a 4Dvolume, the landmarks or points that define the two endpoints of thecurved axis can move over each frame (e.g. time point). This causes thevolume to potentially move locations in 3D space without changingvolume.

In all of the options above, there could be multiple axes. For examplethere could be a “Y” shaped axis that splits in 2 from 1. There is alsothe option of having both straight and curved axes that split and cometogether to create the volume. The point of this would be to account formore complex shapes that still have a primary axis (i.e., centerline).

In all of the options above, there is also the option of displaying howthe 3D volume intersects an MPR. The intersection must be a collectionof one or more closed contours. These closed contours can be rendered onthe MPR, In addition, these closed contours can be edited by moving thecontour in the new (non orthogonal) view. The intersection contours canbe computed both on the client as well as the server, or be adaptivedepending on local resources. For cardiac imaging, common non-orthogonalviews are 2, 3, and 4 chamber views. The contours can be edited in theseviews by only allowing the editing to be in a certain direction (i.e.,along the slice plane).

Out of Plane Measurements and Tracking Mode

Measurements made on structures in a cardiac system from volumetric MRIdata, such as flow measurements of a heart valve, must deal with severalcomplexities such as the shape, position, orientation, and velocity ofthe structure changing significantly over a cardiac cycle. Formeasurements, such as flow, where the measurement is determined by a 2Dcontour, we solve this by using 2D contours that move through 3D space.In the case of a heart valve, either manually or automatically, contoursare placed at the border of the valve opening on the plane that is mostperpendicular to flow direction. The position and orientation of thevalve plane are tracked for each phase of the cardiac cycle with themeasurement contour placed accordingly. The evaluation of flow may beperformed through standard finite methods integration. However, in theevent that the valve plane is moving, the linear and angular velocity ofthe valve plane can be included in the flow computation for that phase.During visualization, when cycling through phases, the position andorientation of the displayed MPR can track the valve plane following theposition and orientation of the valve as it moves. If a measurement isvisualized when the current MPR is out of plane, the contour may berendered semi-transparent.

Segmentation

Continuity Equation Driven Segmentation of Blood Pool

Once again, mass conservation (i.e., continuity) with theincompressibility assumption can be used to show that divergence must bezero everywhere in the blood pool. By computing the divergenceeverywhere, the system can define the extents of the blood pool by athreshold divergence value. The divergence outside the blood pool willbe larger (i.e., air in the lungs) or the velocity will be low (i.e.,velocity signal in static tissue), which both help in identifying thelumen boundary. The divergence map does not need to be the sole inputinto a segmentation algorithm, instead it could be added to other inputsand weighted appropriately.

Automatic Landmark Detection

The typical ways to create an automatic landmark detection algorithm islook for certain shapes in images and measure distances and anglesbetween these shapes. If the measurements lie within a certain band theyare classified. Several other physiologic inputs can be added to thealgorithm. For instance locating a volume of fluid that increases anddecreases substantially with every heartbeat (this is likely to be aventricle). Once a ventricle is found, the inlet and outlet of the valvecan be found by following streamlines. Once a valve is found, it iseasier to find the remaining valves because they are typically always acertain distance and angle away from each other.

The algorithm that is selected to find the landmarks can be of themachine learning type. Since Arterys will be constantly collecting datathat has been validated with correct landmark placing by a clinicianthis data needs to be used as a training set (e.g., statisticalaggregation of data). Every dataset that needs to be analyzed can thenbe co-registered with an ‘atlas’ that is built with the training setdata. Once a sufficient number of datasets are collected, additionalinput parameters such as type of disease (i.e., healthy, tetralogy offallot, etc.) can be used to bin the datasets prior to be analyzed.Every bin could have slightly different landmarks and measurementsdepending on the type of disease and what pathology is expected. If itis known that a dataset is a patient that has a single ventricle, theautomatic landmark detection algorithm needs to adjust for this as itwill never find 4 valves.

In particular the aortic and pulmonic valve landmarks can be determinedusing the following process:

i) Identify regions corresponding to arterial flow from the left andright ventricle. Filters have been developed (described elsewhere) thatare able to do this with high reliability.

ii) Separate the region of arterial flow into two regions, onecorresponding to the aorta and one to the pulmonary artery. This processis described in detail under cardiac output.

iii) Once one region corresponding to either flow from the left or rightventricle has been determined, the other region is determined bysubtracting from the starting region corresponding to both flows. Theregions can then be easily identified as left ventricle flow or rightventricle flow based on their physical dimensions and orientations inspace (also described under cardiac output).

iv) Once the two regions of flow have been identified, initialapproximations for the location of the aortic and pulmonic valve can bedetermined by carefully tracing the bulk flow back to its apparentorigin.

v) Once reliable initial estimates are produced for the location of thetwo valves, other techniques can be used to refine the valve location.For example, one could examine the blood flow acceleration and intensityin the region surrounding the initial estimate in order to refine thelocation of the valves.

Interactive 4D Volume Segmentation

Segmentation of ventricles from a cardiac scan is critical todetermining ventricular function. Automatic ventricular functiontechnique may involve:

-   -   an input of two or more points representing control points of a        spline;    -   the endpoints of the spline denote the apex of the ventricle and        the exit valve (pulmonic or aortic);    -   using these points generate MPRs with plane normals set to the        tangent of the curve at regular intervals along the spline        curve;    -   on each MPR apply an active contour model to find the boundary        (epicardium or endocardium) of the ventricle; and    -   generate a 3D mesh using the points of each of these contours.

Active contour models are subject to instability from the forces thatact on them. To reduce this instability, instead of simply generatingthe contours such that they are spaced at the desired output spacing(distance between contours), the system generates many contours spacedvery tightly together. Also, if the input data has temporal data,contours at the same location are generated using data from adjacenttime points. Contour shape and quality is then measured against typicalcontours from a ventricle. If a contour is deemed to be of sufficientquality it is included in generating a final result. The final resultsare generated by averaging the included contours that are close to theposition and time along the input curve. With a mesh constructed at bothend systole and end diastole the difference in volume represents cardiacoutput and ventricular function.

In one example implementation, the Arterys system and software wouldprovide single click 4D volume segmentation. This would allow the userto click areas of interest (e.g., blood pool, myocardium, bone, etc.)while freely navigating (i.e., rotating, panning, zooming, slicescrolling, time scrolling) the 3D volume. Since a full 3D volumesegmentation algorithm is challenging to construct and be accurate, asecond option is to display 3 orthogonal views to the user while theuser draws the boundary of the area the user would like to segment. Forthe heart, the view that is displayed can be a 2, 3, and 4 chamber viewof the heart in addition to a short axis view. The user only needs tocreate 2 orthogonal contours in long axis, and then the software canautomatically or autonomously create a 3D surface based on interpolatingthe two contours. The 3D surface can be shown in short axis to the userfor quick modification. In addition to showing the anatomic images, theblood velocity images (with or without vectors) can be overlaid onto theanatomic images to further clarify where the blood pool boundary isduring the interactive 3D volume segmentation process.

Adaptive Flood Fill

The system makes use of multiple types of floods which may bedistinguished as 2D vs. 3D, by connectivity used during the flood (6,18, or 26 way connectivity), and radius constrained vs. a floodconstrained by a maximum number of steps. In all cases, the flood worksby moving outward from a specified seed point and including a pixel inthe result of the flood if it is 1) connected to the rest of the flood(using whatever connectivity was specified), 2) has an intensity withina specified threshold of the pixel at the seed point, and 3) the pixelis within the specified radius or maximum number of steps of the seedpoint. The result of the flood is a 2 or 3 dimensional connected mask.The flood algorithm is used in solids in the form of a 3D flood to markstatic/non-static tissue, in volumes where a 2D flood can be used togenerate a contour in the short axis stack, and in flow quantification,where a 2D flood may be used to flood a vessel to determine the flowcontained within the flood.

To generate a contour from a 2D flood, we make use of the fact that theflood will necessarily be connected and that it is a binary image.Because of these facts, we may apply a standard border tracing algorithmto come up with a contour which will ignore any holes that may bepresent within the interior of the flood.

From the generated contour, the next operation is to reduce thegenerated contour from potentially hundreds of points to a small set ofcontrol points to be used by a closed cubic spline to accuratelyapproximate the actual contour. A naïve down sample where the systemsimply spaces a fixed number of control points spaced equally around thecontour does not work as well as other approaches, as this approachfrequently results in the loss of important features in the contour suchas concave portion of the flood which was going around a papillarymuscle. To get around this, a “smart” down sample approach is employedwhich proceeds in a number of acts. To begin with, each point in thecontour is assigned a corner strength score ranging from −1 to 1, aswell as assigning each point an area of “influence”. Once this is done,the contour is reduced to only those points where their corner strengthis maximal within their area of influence. Additional criteria are alsoenforced in this stage, such as ensuring we have a minimal point spacingand ensuring our detected corners are sufficiently strong.

The result of the preceding operation is a list of “corners” detected inthe flood. By using these as control points in a spline, this approachensures that the spline will not lose any interesting features in thecontour. However, any long stretches of relatively low curvature in theoriginal contour will not be detected as corners, which can result insignificant portions of the resulting contour not having any controlpoints, leading to a poor approximation by a spline in such segments. Toget around this, an error metric is computed for each pair of controlpoints by calculating the area of a closed contour formed by the segmentof the original contour passing through the points, and the segment of aspline passing through those points. If the error is above some fixedtolerance, another control point is added at the midpoint of the segmentof the original contour. This operation is repeated until each segmenthas a computed error below the required tolerance.

This flood-to-contour tool can be used in at least two places in theapplication: for flooding slices of a ventricle while performing avolumetric segmentation, and in flow quantification. In the case of theflood for volumes, the returned contour is dilated by 8% in order tocapture more of the ventricle as a raw flood fill often underestimatessimply because of the difference in pixel intensities close to the heartwall. For a flow flood, the result is dilated by 12% because the floodtool works on anatomy, which means the undilated flood will often missflow near the vessel wall.

Overall Process

Automated Reports

In a way similar to how echocardiographic reports are generated, anautomated report based on 4D-Flow MR data can be created by allowing theuser to click on the type of patient they have. Arterys will have uniquereport templates that are specific to a certain pathology or type ofuser (i.e. patient or clinician). All of the values, curves, images, andcine movies in this report can be automatically populated in the reporttemplate. Since landmarks are placed as part of the pre-processing step,all the important information can be automatically saved in the databaseand exported to this report.

Automated Integration Tests

A tool called nwjs that is designed for producing cross platform nativeapplications using Web technologies is used to perform automatedintegration tests. Although not designed for this purpose, it allows usto run both client and server software stack within the same environmentallowing us complete control over the client and server applications atthe same time. Using infrastructure mixed with a test tool called mocha,we write tests that emulate the customer interaction with the clientwhile asserting both the client and server processing of thatinteraction along with the resulting state of the application. Thismethod of integration testing is novel and superior to other tools thatare mostly vision based, for this type of User Interface testing.

Hybrid Client Server Rendering

Description Some workflows require one or multiple images to be renderedat the same time that have linked properties. In some cases the currentworkflow step may require simultaneous viewing of 20 images. If each ofthese images was retrieved with a distinct HTTPS request, performancewould suffer greatly as there is significant overhead in creating andsending a request. Instead, we render all the images onto one largeimage, and only make a single HTTPS request for that ‘sprite sheet’. Theclient then displays the images by using pixel offsets. For example, ifa view had four images each 256×256, the sprite sheet might be 256×1024with each of the images stacked one on top of another. The client wouldthen display 4 images at 256×256 by using offsets of 0, 256, 512, and768.

In addition, any lines, markers, or planes in the images are drawn onthe client as an overlay, and the information that informs the clienthow to render the overlay comes from the server via a JSON message. Thisprovides higher quality rendering of the overlay data than if theoverlay were to be rendered on the server and then encoded as a JPEG andtransmitted.

Automated Global Endurance and Stress Testing

In order to perform load testing and endurance testing, we launch amultitude of client processes on a multitude of computers (which can begeographically distributed) to start specialized web browsers in whichwe have complete control over their execution environment. They aredirected to the application and load the client as a normal browserwould, then we directly interact with the client state controlling thesoftware and making it behave as certain workload. The client and servermetrics are recorded during load testing and can be run for longerperiods of time for endurance testing.

Pusher Pushing Data from a Medical Device to Remote Servers

We have developed software to monitor for active studies, and push theresults to our remote service in the cloud. A folder is monitored forfiles being generated by a scanner, and upon completion, all relevantdata is bundled together and pushed via a secure connection using aunique secret and key per scanner for authorization to our remote cloudservers. Disk space (e.g., nontransitory storage media) usage isminimized by immediately deleting any intermediate files.

Upon a successful transfer, the data integrity of the transferredcontent is verified against the local content by reproducing the packageprocess and comparing the output of a cryptographic hash function.Repeating the process like this ensures that any new data that may havebeen generated by a scan was not missed in the case of delays during thescanning process which may trigger premature transfer of the data toArterys servers.

In the case of a failed transfer, due to server or network errors aconfigurable number of attempts will be made with an increasing intervalof rest between each attempt, before the pusher assumes the transfer wasa failure. However, after a failed transfer (including all subsequentattempts), the pusher will continue to monitor for incoming files, andwill re-attempt another transfer at a later time.

Once data has been verified as successfully transferred, the data isremoved by our software to conserve disk space on scanners.

A heartbeat message is sent from each pusher software running on everyscanner providing the local log data and detailed status information ofthe scanner, providing continuous monitoring and increased response timeto ensure scanner functionality during critical scan times.

During initial installation, a scanner will automatically register withArterys by requesting a unique secret and key to sign all futurerequests with for authorization purposes. The scanner will be registeredin our systems database, but not attached to any organizations. Atechnician is then able to attach all recently registered scanners tothe correct organization through a web portal.

A pusher is able to auto update (if configured) by periodicallyrequesting new versions from Arterys. If a new version is provided, itwill install a new copy of itself, and restart. This allows for securityand functionality updates to be deployed to scanners with nointervention from technicians. The heartbeat messages provide theinformation required to ensure success of this operation on the Arterysservers. The heartbeats enable us to determine any pushers that have notbeen updated recently, and reach out to hospitals directly toproactively ensure all software is up to date and secure.

FIG. 3 shows an example process 300.

Puller—Archiving Artifacts

The puller software is used to archive generated artifacts at a hospital(for example PACS). It is installed within a hospital's network andregisters itself automatically with Arterys using a similar method tothe pushers. A request is made with some identifying information, and asecret and key pair is returned to sign future requests forauthentication and authorization purposes. The puller is then attachedto an organization by a technician through a web portal.

It is also possible to download a version for an organization directly,with a unique key and secret included automatically in the installationprocess, so there is no need to auto register and attach the puller onceinstalled.

The configuration for artifact endpoints is done on Arterys servers.Multiple locations can be configured with hostnames, ports, AE titles,and any other required information the puller would need to transferdata to it. These endpoints can be named, and are selectable from theArterys web UI by a clinician when choosing where they would like theirartifacts (reports/screenshots/videos) to be archived.

The puller monitors for artifacts by requesting a list from the ArterysAPI at regular and frequent intervals. The list of artifacts includes aunique id, and all of the configuration information for the endpoint theartifact will be stored in. The unique ID is used as input into anotherAPI request to retrieve the artifact from Arterys servers. The artifactis unzipped if required, and transferred using the configuration andmethod defined by the configuration included in the list request (e.g.,storescp). Once all data is transferred, another API request using theprovided ID is made to Arterys to mark the artifact as archived, and itwill no longer appear in the list generated by the first request in theprocess loop. Once the artifact has been marked as archived, the Arterysservers will notify a user that archival is complete.

The puller sends heartbeat requests to Arterys providing detailed logsto help validate and ensure everything is functioning as expected. Thepuller will also occasionally—at a configurable time (e.g., once an houror day)—make an API request to Arterys for new versions of the pullersoftware. If a new version is available, it will be downloaded,installed and the puller will restart itself.

Example request to retrieve a list of artifacts

GET https://app.arterys.com/api/1/artifact?status=pending&timeout=20 [ {“id” : “55006362619baaad4323f799”, “name”: “report_one.zip”, “digest”:“f90sdaf9d0safd0safd09safd”, “size”: 3523234, “dicom_host”:“192.168.1.3””, “dicom_port”: 1999, “dicom_aetitle”, “aetitle for dicomendpoint” }, { “id” : “454bf977be1cfbe146f36549”, “name”:“report_two.zip”, “digest”: “9320028003002930sass9safd”, “size”:1221134, “dicom_host”: “192.168.1.3””, “dicom_port”: 1999,“dicom_aetitle”, “aetitle for dicom endpoint” } ]

FIG. 4 shows an example process 400 of monitoring for artifacts andarching.

PHI Service

We have developed a method to securely deliver sensitive patientinformation to a client application from a service without disclosingthe sensitive information to the service provider.

The data prior to being sent to the service provider is stripped of allpatient identifiable health information, which is registered with theservice and the original sensitive data is replaced with a unique tokenidentifier provided by the service.

The client when interacting with the service provider will identifythese tokens and use an independent transport layer to replace thetokens with the sensitive patient health information.

Below is an example of a possible implementation of such a system:

Actors:

The user which integrates with the client software (user)

The client application (client)

The service which holds the sensitive patient information (service)

The application service provider (asp)

1. The user indicates to the software a set of files it would like tosend to an asp.

2. For each file sensitive all sensitive information is gathered in jsonformat and registered with the service over an http request.

Example

POST https://sensitive.arterys.com/register-data HTTP/1.0 {“PatientName” : “Franklin\Benjamin” “Birthdate” : “1706-01-17” } returnsLocation: “/4217ad2b78fff7eb9129a58b474efb3e”

3. The sensitive data is replaced with placeholders such as#{PatientName} and then the data is uploaded along with the Location urlreturned from the service.

4. When the client loads the data from the application service provider,strings that contain these sensitive tokens cause the client applicationto request the data from the service provider (either individually or inbulk).

Example

GET

https://sensitive.arterys.com/4217ad2b78fff7eb9129a58b474efb3e#PatientNamereturns

“Franklin\Benjamin”

5. The client substitutes the tokens with the sensitive information.

Note: For authorization, we could use an sso such as saml2.

Workspaces

Workspaces are a solution the issues of storing and sharing a subset ofapplication state throughout medical software.

Workspaces contain the application state of a study including anyanalysis, and when loaded they restore application the previous state.Application state includes the subset of component state related to aparticular concern such as study review including measurements and ecccorrection values etc.

Workspaces can be loaded and updated constantly while the user interactswith the software. Users start with a private default workspace whenloading a study for the first time, and when reloading the most recentlyused applicable workspace is loaded.

Users can publish a study to a group or more users, which can also serveas a trigger for report generation and external system notifications.

When opening a published workspace for the first time a private copy ofthe workspace is created with is also loaded on subsequent reloads.Published studies are immutable and can never be modified.

Machine Learning with Medical Imaging

With a cloud interface, it is now possible to aggregate statistics frommultiple sources to come up with predictions using machine learning.These multiple sources can be the results generated by multiple peoplewithin an organization, or even multiple organizations scattered acrossthe world. The statistics that can be aggregated can be medical imagingpixel data, medical imaging metadata (e.g. DICOM headers), and forexample the electronic medical records of patients (EMRs). The learningcan be applied at a user level, at an organization level, or even at amacro level (e.g. globally).

In the case of trying to automatically quantify (e.g. annotate, measure,segment) medical images, there can be two different categories of deeplearning, machine learning or artificial intelligence: For the medicalimaging application, supervised learning is more appropriate becausethere is not sufficient data to learn from. In order to learn aseffectively as possible, the cloud user interface has been tailored toallow users to add labels to the data in a structured fashion. Forexample, in the case of cardiovascular imaging, a user can make severalmeasurements and label the measurements as they wish. Instead ofallowing a completely user defined field, there is the option for a userto select a label from a predefined list that Arterys provides. By doingthis, we can add labels to the data in a structured and automatedfashion. Labeled data acts as the training data set to feed into amachine learning algorithm (i.e. like a random forest or deep learningCNN or RNN) so that the algorithm can predict an outcome based on newunlabeled data. For example, one optional step in the user reviewprocess is for them to “publish” their workspace or state in a way thatconfirms that they are happy with the labels that they have added to thedata. The “publish” mechanism can be an icon in the user interface thatthey click to “save”, or it can be the results that get sent to archive(for example to a hospital PACS server). There just needs to be a way todifferentiate a user creating dummy measurements and annotations withtrue clinical measurements and annotations.

The benefit of a cloud interface is that every time a user makes anymodification within the system interface to the suggestion provided,this modification then is saved and fed back into the machine learninglabeled data. This creates a reinforcement learning loop that adds veryvaluable training data. The suggestions provided by the machine learningalgorithm can be provided once when a user logs in or in real-time everytime a user makes a modification during their session. For example, whena user identified a voxel in a medical image that is anatomy, allsimilar voxels can be identified in real-time in their session.

In the case of trying to predict the outcome of a particular treatment(and giving a resulting probability measure) or to predict whichtreatment choice is better suited for a particular patient, data fromthe EMR is critical. Having access to labeled medical device data (e.g.medical imaging, genomic data, wearables) is not sufficient indetermining best treatment decisions. This data needs to be aggregatedacross all retrospective cases to offer a prediction to a new patientthat has similar medical device data.

Machine learning can also be used for search in medical images. A usercan type in a search field and find all images that for example has aparticular type of disorder. A user can then verify that all the studiespresented to them have this disorder and this data can then be fed backinto the training dataset.

Picture and Video Service—

We want the user to be able to capture pictures and video of the currentstate of their workflow. These images and videos need to include bothimage data generated on our server and overlays rendered on the clientbrowser. To accomplish this we have a node-webkit based video servicethat allows us to run both our client and server software stack withinthe same environment. We then restore the current state of the user'sworkspace on the node-webkit environment and leverage the same computenodes that were allocated for that user's session. If a single pictureis requested by the user the service simply takes a screenshot of therestored workspace and the resulting image file is returned. In the caseof a video request the service takes a screenshot for each frame of thecurrent workflow and compiles the screenshot images into a video fileusing a video encoder which is then returned. The returned images orvideo can be stored on the server or sent back to the client to beviewed.

Below is an example of a detailed software design for the picture andvideo service:

Screenshots and Video Capture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Requirements{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over ( )} *screenshot should be a rendering of what the user currently sees in theviewport area * video can be an mpr cycled through time * video can begenerated from a collection of key frames with in-betweens interpolatingparameters that can be interpolated * video can be user interactionrecording * output should contain everything that is on the viewport(image, webgl overlays, css overlays, ...) * screenshots and videoframes should be full-quality Design {circumflex over ( )}{circumflexover ( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )} Since we render everything on the client weneed a client to generate the image. Unfortunately, uploading a videowould be prohibitive in the majority of network situations. Hence, ascreenshot/video service will run in the cluster that uses clientrendering technology. It will expose an interface over http to providefunctionality defined in the requirements. The service spins up nodewebkit processes on demand to render videos and screenshots as requestscome in. Upon receiving a request to render an image or collection ofimages, the service will launch a node webkit process and redirect it tosigned URL for the user’s worklist. The node-webkit process will thenload the study and inject the user’s workspace Next each frame will berendered at full quality. As a frame is rendered, node-webkit willperform an X11 screen capture and crop to the canvas viewport. The imagewill be saved to disk. Once all frames have been captured the servicewill return the screenshot, or in the case of a video, a video will beencoded and returned. Data Flow {circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )} * user initiates request for screenshot orvideo. * webserver receives request * node-webkit process is started *node-webkit process opens a session, authenticated to load the requiredstudy * requested study is loaded * workspace in the request is injectedinto the study * upon completion of workspace load (including longrunning tasks like streamlines) it begins to render key frames * everyframe is rendered full quality with no debounced image commands * as animage is rendered X11 screen grab (xwd) is executed on the window * theimage is cropped to the viewport and saved to disk * if a video wasrequested encoding will run once images are generated * upon completionof all images an http response is sent back with the .png or .mp4 * uponwebserver receipt of the result, it will be saved in S3 and a referencesaved to the database Additional Tools and Optimizations {circumflexover ( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )} * node-webkit requireswebgl so the service will need to run on G2 instances * program ‘xwd’ in‘x11-apps’ can capture window * ImageMagick ‘convert’ can convert xwd topng * ffmpeg can be used to generate .mp4 from a collection of .pngDetails {circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )}{circumflex over ( )}{circumflex over( )}{circumflex over ( )} Screenshots +++++++++++ Client message: ----ws.emit(‘generate-screenshot’, params); ---- params: ---- { workspace_id : ‘workspace-id’,  id : ‘app-id’,  study_id : ‘study-id’, upload_id : ‘upload-id’,  window_width : ‘browser_window_width’, window_height : ‘browser_window_height’,  hostname :window.location.hostname,  port : window.location.port,  pathname :‘/app/xxx’ } ---- Video +++++ Client message: ----ws.emit(‘generate-screenshot’, params); ---- params: ---- {  // same asscreenshot plus  render_frames : [ { orientation : [1,0,0,0,1,0,0,0,1],position : [0,0,0], time point : 1 ... }, { orientation :[0,1,0,1,0,0,0,0,1], position : [0,0,0], time point : 2 ... } ...  ], betweens : optional_number_of_frames_to_interpolate_between_frames }---- Webserver handler +++++++++++++++++

The message handler for ‘generate-screenshot’ attaches the currentworkspace to the args being sent to the webkit services

The webkit-client module is then used to send a request to one of thewebkit services.

Once the response is received a record is inserted into the database andthe image or video is stored.

Webkit-Client

+++++++++++++

The webkit-client module is responsible for routing a screenshot requestto a node that can handle it.

The webkit-client subscribes to redis messages that are published by thecurrently running webkit nodes.

These messages include the existing instances of node-webkit that arerunning with the app-id they are running with.

When a request is received the webkit-client attempts to find a nodethat already has node-webkit running with the requested app-id.

Alternatively if a session has not been created yet it chooses the nodewith the least number of running sessions.

Once the node has been identified it sends the message over HTTPS tothat host.

Arguments are sent in the body as JSON in a POST to the route‘/webkit/execute’.

When the result returns a callback is invoked with the binary and a JSONblob containing the type (image/png or video/mp4), along with otheruseful information collected (e.g., timing information, size)

---- function execute(args, cb) {https.request(‘POST’,‘/webkit/execute’,JSON.stringify(args),function(res) { cb(null, { binary : res, json : { type :headers[‘content-type’], info: { generation_start_time: <date>,generation_end_time: <data>}} }); }); } ----

Webkit-Service

++++++++++++++

The webkit-service is a micro service that exposes an HTTPS interface togenerate screenshots and videos.

The webkit-service listens only for POST requests at ‘/webkit/execute’.

Upon receiving a POST to ‘/webkit/execute’ it creates a webkit-contextand enqueues a request for a screenshot or video.

This module also takes care of authorizing the request that will be sentfrom node-webkit to the webserver by appending an auth_token associatedwith the special ‘webkit-screenshot’ user.

Webkit-Context

++++++++++++++

The webkit-context module is responsible for managing the node-webkitprocess that will run to generate a screenshot or video.

Upon creation a webkit-context creates a working directory to storeintermediate results.

Next, it configures node-webkit by copying a simple ‘index.html’ and‘package.json’ file into the working directory, and the ‘args.json’containing the arguments passed into the context to render thescreenshot/video.

Then node-webkit is started, and runs through the process of generatinga screenshot.

When node-webkit exits, the webkit-context will look for the appropriatescreenshot or video file to respond with.

Only one screenshot per app-id can run at a time.

A webkit-context registers itself in redis so that a webserver can routescreenshot and video requests.

Node-Main

+++++++++

The node-main module is the bridge module running in node-webkit.

When node-webkit starts it waits until the ‘global.window’ variable isdefined, and then reads in the args.json file and starts executing thesteps to generate a screenshot.

These arguments denote the width×height to make the window and where toredirect window.location.href to.

It assumes the redirect points to a website that will setglobal.window.io, which is an Arterys defined variable denoting thewebsocket connection.

Once the websocket connection has been made it invokes a ‘load-study’command, and waits for ‘load-workspace-complete’.

Once all commands that may have been invoked by restoring a workspaceare finished node-main starts capturing images.

If ‘args.json’ contained the field ‘render_frames’ it iterates througheach one generating an image.

The images are generated by invoking xwd to dump the Xwindow.

ImageMajick convert is then used to convert to a png and crop to the‘.ar-content-body-canvases’.

If there was more than one image generated then ffmpeg is invoked toencode the collection of images into an h.264 encoded video.

When the screenshot or video has been created, node-webkit will exitcleanly.

Any error will cause node-webkit to exit with a non zero code, whichwill indicate to the webkit-context that the screenshot has failed.

The above described automated approaches remove the subjectivity inidentifying anatomical structure and flow, which is endemic inconventional approaches, providing a high level or repeatability. Thisrepeatability allows new uses for the MRI data. For example, MRI datafor single patient may be reliably reviewed across different sessionsfor trends. Even more surprisingly, MRI data for a plurality of patientsmay be reliably reviewed for trends across a population or demographic.

The various embodiments described above can be combined to providefurther embodiments. To the extent that they are not inconsistent withthe specific teachings and definitions herein, all of the U.S. patents,U.S. patent application publications, U.S. patent applications, foreignpatents, foreign patent applications and non-patent publicationsreferred to in this specification and/or listed in the Application DataSheet, including but not limited to U.S. Provisional Patent ApplicationNo. 61/571,908, filed Jul. 7, 2011; International Patent Application No.PCT/US2012/045575, filed Jul. 5, 2012; U.S. Provisional PatentApplication No. 61/928,702, filed Jan. 17, 2014; International PatentApplication No. PCT/US2015/011851, filed Jan. 16, 2015; U.S. patentapplication Ser. No. 15/112,130 filed Jul. 15, 2016; U.S. ProvisionalPatent Application No. 62/260,565, filed Nov. 29, 2015; U.S. ProvisionalPatent Application No. 62/415,203 filed Oct. 31, 2016; and U.S.Provisional Patent Application No. 62/415,666 filed Nov. 1, 2016, areincorporated herein by reference, in their entirety. Aspects of theembodiments can be modified, if necessary, to employ systems, circuitsand concepts of the various patents, applications and publications toprovide yet further embodiments.

These and other changes can be made to the embodiments in light of theabove-detailed description. In general, in the following claims, theterms used should not be construed to limit the claims to the specificembodiments disclosed in the specification and the claims, but should beconstrued to include all possible embodiments along with the full scopeof equivalents to which such claims are entitled. Accordingly, theclaims are not limited by the disclosure.

1. A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically correct phase aliasing,the method comprising: receiving, by at least one processor, a set ofMRI data representative of an anatomical structure, the set of MRI datacomprising respective anatomical structure and velocity for each of aplurality of voxels; for each of at least some of the plurality ofvoxels, identifying, by the at least one processor, sharp gradients inflow velocity near a velocity encoding parameter; connecting, by the atleast one processor, all of the voxels identified as having a sharpgradient to define an enclosed boundary; determining, by the at leastone processor, whether all of the voxels in the enclosed boundary arealiased; and responsive to determining that all of the voxels in theenclosed boundary are aliased: adding, by the at least one processor, amultiple of the velocity encoding parameter to the velocity for each ofthe voxels in the enclosed boundary; or subtracting, by the at least oneprocessor, a multiple of the velocity encoding parameter to the velocityfor each of the voxels in the enclosed boundary.
 2. The method of claim1, further comprising: responsive to determining that not all of thevoxels in the enclosed boundary are aliased, analyzing, by the at leastone processor, the respective velocities of neighboring voxels in theenclosed boundary; and modifying, by the at least one processor, thevelocity of each of the voxels in the enclosed boundary based at leastin part on the analyzed respective velocities of the neighboring voxels.3. The method of claim 2 wherein modifying the velocity of each of thevoxels in the enclosed boundary comprises modifying the velocity of eachof the voxels by an amount determined to minimize the discontinuityacross the neighboring voxels.
 4. The method of claim 1 whereindetermining whether all of the voxels in the enclosed boundary arealiased comprises determining whether there are any sharp gradientsbetween neighboring voxels in the enclosed boundary.
 5. A method ofoperation for use with a magnetic resonance imaging (MRI) based medicalimaging system, the method comprising: receiving, by at least oneprocessor, a set of MRI data representative of an anatomical structure,the set of MRI data comprising respective anatomical structure andvelocity information for each of a plurality of voxels; defining, by theat least one processor, a volume within the anatomical structure;minimizing, by the at least one processor, a divergence of a velocityfield for at least some of the plurality of voxels that represent thevolume within the anatomical structure; and correcting, by the at leastone processor, velocity information for the at least some of theplurality of voxels which represent the volume within the anatomicalstructure based at least in part on the minimized divergence of thevelocity field.
 6. The method of claim 5 wherein correcting velocityinformation for the at least some of the plurality of voxels comprisescorrecting x velocity, y velocity and z velocity for the at least someof the plurality of voxels.
 7. The method of claim 5 wherein minimizinga divergence of a velocity field comprises constructing a least squaresdivergence free approximation of the velocity field with a constraint ofminimizing the divergence.
 8. The method of claim 7 wherein minimizing adivergence of a velocity field comprises iteratively minimizing aresidual divergence of the velocity field.
 9. A method of operation foruse with a magnetic resonance imaging (MRI) based medical imaging systemto automatically correct phase aliasing, the method comprising:receiving, by at least one processor, a set of MRI data representativeof an anatomical structure, the set of MRI data comprising respectiveanatomical structure and velocity information for each of a plurality ofvoxels; analyzing, by the at least one processor, the set of MRI data toidentify a time point which corresponds to a peak diastole of a cardiaccycle; analyzing, by the at least one processor, a variation of thevelocity of at least some of the plurality of voxels over at least aportion of the cardiac cycle; and correcting, by the at least oneprocessor, errors in the velocity of the at least some of the pluralityof voxels based at least in part on the analysis of the variation of thevelocity of at least some of the plurality of voxels over at least aportion of a cardiac cycle.
 10. The method of claim 9 wherein analyzinga variation of the velocity of at least some of the plurality of voxelsand correcting errors in the velocity of at least some of the pluralityof voxels comprise: for each of the at least some of the plurality ofvoxels, tracking, by the at least one processor, a change in velocitybetween successive time points in the cardiac cycle; determining, by theat least one processor, that aliasing has occurred if the velocityvaries by more than a magnitude of a velocity encoding parameter;responsive to determining that aliasing has occurred, incrementing, bythe at least one processor, a wrap count if the velocity was reduced bymore than the velocity encoding parameter; or decrementing, by the atleast one processor, a wrap count if the velocity was increased by morethan the velocity encoding parameter; and for each point in time,modifying, by the at least one processor, the velocity based at least inpart on the accumulated wrap count for the voxel.
 11. The method ofclaim 10 wherein modifying the velocity based at least in part on theaccumulated wrap count for the voxel comprises increasing the velocityby an amount equal to product of the accumulated wrap count and twotimes the velocity encoding parameter.
 12. The method of claim 10,further comprising: determining, by the at least one processor, whetherthe accumulated wrap count is zero over a cardiac cycle; and responsiveto determining that the accumulated wrap count is not zero over acardiac cycle, generating, by the at least one processor, an errorsignal.
 13. The method of claim 12, further comprising: tracking, by theat least one processor, the number of voxels for which the accumulatedwrap count is not zero over a cardiac cycle.
 14. The method of claim 12,further comprising: correcting, by the at least one processor, errors inthe velocity only for voxels for which the accumulated wrap count is notzero over a cardiac cycle.
 15. The method of claim 9, furthercomprising: identifying, by the at least one processor, which of theplurality of voxels are likely to represent blood flow; and selecting,by the at least one processor, the at least some of the plurality ofvoxels for analysis based at least in part on the identification ofwhich of the plurality of voxels are likely to represent blood flow. 16.A method of operation for use with a magnetic resonance imaging (MRI)based medical imaging system to automatically correct artifacts due toeddy currents, the method comprising: receiving, by at least oneprocessor, a set of MRI data representative of an anatomical structure,the set of MRI data comprising respective anatomical structure andvelocity information for each of a plurality of voxels; receiving, bythe at least one processor, an indication of which of the plurality ofvoxels represent static tissue; determining, by the at least oneprocessor, at least one eddy current correction parameter based at leastin part on the velocity information for the voxels which representstatic tissue; and modifying, by the at least one processor, thevelocity information for the plurality of voxels based at least in partthe determined at least one eddy current correction parameter.
 17. Themethod claim 16 wherein receiving an indication of which of theplurality of voxels represent static tissue comprises: filtering, by theat least one processor, the MRI data to mask regions of air; filtering,by the at least one processor, the MRI data to mask regions of bloodflow; and filtering, by the at least one processor, the MRI data to maskregions of non-static tissue.
 18. The method of claim 17 whereinfiltering the MRI data to mask regions of air comprises masking regionswith anatomy image values that are below a determined threshold.
 19. Themethod of claim 18, further comprising: analyzing, by the at least oneprocessor, a histogram for anatomy image values to determine thedetermined threshold.
 20. The method of claim 17, further comprising:receiving, by the at least one processor, at least one filter parametervia a user interface communicatively coupled to the at least oneprocessor.
 21. A method of operation for use with a magnetic resonanceimaging (MRI) based medical imaging system to automatically set anorientation of a multiplanar reconstruction, the method comprising:receiving, by at least one processor, a set of MRI data representativeof an anatomical structure, the set of MRI data comprising respectiveanatomical structure and velocity information for each of a plurality ofvoxels; presenting, by a display communicatively coupled to the at leastone processor, the MRI data; receiving, by the at least one processor,selection of a central region of blood flow; determining, by the atleast one processor, the direction of blood flow in the central regionof blood flow; and responsive to determining the direction of bloodflow, adjusting, by the at least one processor, the orientation of themultiplanar reconstruction so that the multiplanar reconstruction is ona plane that is perpendicular to the determine direction of blood flow.22. The method of claim 21 wherein determining the direction of bloodflow in the central region of blood flow comprises: determining a timepoint which corresponds to peak blood flow; and determining thedirection of blood flow at the time point which corresponds to peakblood flow.
 23. A method of operation for use with a magnetic resonanceimaging (MRI) based medical imaging system to automatically quantifyblood flow in an anatomical volume, the method comprising: receiving, byat least one processor, a set of MRI data representative of ananatomical structure, the set of MRI data comprising respectiveanatomical structure and velocity information for each of a plurality ofvoxels; identifying, by the at least one processor, an anatomical volumein the set of MRI data which comprises a blood pool; identifying, by theat least one processor, a plane on a landmark that is at leastapproximately perpendicular to the flow of blood in the anatomicalvolume; generating, by the at least one processor, a contour defined bythe intersection of the plane and the anatomical volume; anddetermining, by the at least one processor, the total flow of bloodthrough the voxels in the generated contour.
 24. The method of claim 23wherein determining the total flow of blood through the voxels in thegenerated contour comprises: for each voxel in the generated contour,determining, by the at least one processor, a dot product of a normalvector of the plane and a velocity vector of the voxel; and summing, bythe at least one processor, the determined dot products of each of thevoxels in the generated contour.
 25. The method of claim 23 wherein thevelocity information comprises a plurality of velocity components, anddetermining the total flow of blood through the voxels in the generatedcontour comprises: for each velocity component, producing a velocitymultiplanar reconstruction (MPR) in the plane of the generated contour,each of the velocity MPRs comprising a plurality of MPR pixels havingpixel spacing at least similar to dimension of each of the voxels; foreach MPR pixel inside the generated contour, determining, by the atleast one processor, a dot product of a normal vector of the plane and avelocity vector composed of the pixel values from the generated velocityMPRs; and summing, by the at least one processor, the determined dotproducts of each of the MPR pixels in the generated contour.
 26. Amethod of operation for use with a medical imaging system toautomatically determine a volume of a particular region, the methodcomprising: receiving, by at least one processor, a set of image datarepresentative of an anatomical structure, the set of image datacomprising respective anatomical structure information for each of aplurality of voxels; receiving, by the at least one processor, anindication of a primary axis of a volume of interest; generating, by theat least one processor, a plurality of spaced-apart slice planes alongthe primary axis of the volume of interest; for each of the plurality ofslice planes, generating, by the at least one processor, a closedcontour which defines a boundary of the volume of interest at the sliceplane; generating, by the at least one processor, a three dimensionalsurface which connects the contours of all of the slice planes; anddetermining, by the at least one processor, the volume of the threedimensional surface.
 27. The method of claim 26 wherein the set of imagedata comprises respective anatomical structure information for each of aplurality of voxels at a plurality of time points, and the methodcomprises: for each of the plurality of time points, generating, by theat least one processor, a plurality of spaced-apart slice planes alongthe primary axis of the volume of interest; for each of the plurality ofslice planes, generating, by the at least one processor, a closedcontour which defines a boundary of the volume of interest at the sliceplane; generating, by the at least one processor, a three dimensionalsurface which connects the contours of all of the slice planes; anddetermining, by the at least one processor, the volume of the threedimensional surface.
 28. The method of claim 26 wherein receiving anindication of a primary axis comprises receiving an indication of aprimary axis that comprises one of a straight axis or a curved axis. 29.The method of claim 26 wherein the set of image data comprisesrespective anatomical structure information for each of a plurality ofvoxels at a plurality of time points, and the primary axis comprises aprimary axis that moves over at least some of the plurality of timepoints.
 30. The method of claim 26 wherein receiving an indication of aprimary axis comprises receiving an indication of multiple axes.
 31. Amethod of operation for use with a medical imaging system toautomatically generate a connected mask, the method comprising:receiving, by at least one processor, a set of image data representativeof an anatomical structure, the set of image data comprising respectiveanatomical structure information for each of a plurality of locations inspace; identifying, by the at least one processor, a seed location;identifying, by the at least one processor, an intensity value for theseed location; and traversing, by the at least one processor, outwardfrom the seed location to other locations to flood fill the connectedmask according to flood fill criteria, the flood fill criteria includingat least whether the intensity value of the each of the locations iswithin a specified threshold of the intensity value for the seedlocation.
 32. The method of claim 31 wherein the received set of imagedata comprises three dimensional image data, the method furthercomprising: generating, by the at least one processor, a two dimensionalmultiplanar reconstruction from the received image data.
 33. The methodof claim 31 wherein moving outward from the seed location to otherlocations to flood fill the mask comprises moving outward from the seedlocation to other locations to flood fill the mask according to floodfill criteria which includes connectivity criteria.
 34. The method ofclaim 31 wherein moving outward from the seed location to otherlocations to flood fill the mask comprises moving outward from the seedlocation to other locations to flood fill the mask according to floodfill criteria, the flood fill criteria including at least one of aradius constraint or a number of flood fill steps constraint.
 35. Themethod of claim 31, further comprising: generating, by the at least oneprocessor, a contour defined by a border of the connected mask; andgenerating, by the at least one processor, an approximation contourwhich is an approximation of the generated contour based at least inpart on the generated contour.
 36. The method of claim 35 whereingenerating an approximation contour comprises generating anapproximation contour using a spline which places control points atareas of high curvature.
 37. The method of claim 35, further comprising:dilating, by the at least one processor, the approximation contour by adetermined dilation factor to generated a dilated approximation contour.38. A method of operation for use with a medical imaging system, themethod comprising: receiving, by at least one processor, a set of imagedata representative of an anatomical structure, the set of image datacomprising respective anatomical structure information for each of aplurality of locations in three dimensional space; tracking, by the atleast one processor, the position and orientation of the anatomicalstructure at a plurality of time points; at each of the plurality oftime points, generating, by the at least one processor, a contour forthe anatomical structure; and determining, by the at least oneprocessor, a measurement associated with the anatomical structure usingthe generated contours.
 39. The method of claim 38 wherein determining ameasurement associated with the anatomical structure using the generatedcontours comprises accounting for movement of the anatomical structureover at least some of the plurality of time points.
 40. The method ofclaim 39 wherein accounting for movement of the anatomical structurecomprises accounting for the linear and angular velocity of theanatomical structure over the at least some of the plurality of timepoints.
 41. The method of claim 38 wherein determining a measurementassociated with the anatomical structure using the generated contourscomprises determining flow through the anatomical structure.
 42. Themethod of claim 38, further comprising: presenting, by the at least oneprocessor, a multiplanar reconstruction of the anatomical structure on adisplay at a plurality of time points, wherein the position andorientation of the multiplanar reconstruction tracks the generatedcontours over the plurality of time points.
 43. The method of claim 38,further comprising: presenting, by the at least one processor, amultiplanar reconstruction of the anatomical structure on a display; andpresenting, by the at least one processor, the generated contours assemi-transparent if the multiplanar reconstruction is out of plane withthe generated contours.
 44. A processor-based device having at least oneprocessor and at least one nontransitory processor-readable mediumcommunicatively coupled to the at least one processor, and operable toperform any of the methods of claims 1 through 43.